From 922da3670b8b7f3e031628eb8d45029854b5a651 Mon Sep 17 00:00:00 2001 From: Mateusz Skoczek Date: Sat, 19 Oct 2024 01:07:42 +0200 Subject: [PATCH] additional files --- .../CreatorRolesPanelComponent.razor | 36 ++++++++++--- .../CreatorRolesPanelComponent.razor.cs | 51 ++++++++++++++++++- .../Components/MediaPage/RoleComponent.razor | 12 +---- .../MediaPage/RoleListComponent.razor | 49 ++++++++++-------- .../MediaPage/RoleListComponent.razor.cs | 17 +++++++ .../WatchIt.Website/Pages/MediaPage.razor | 4 +- 6 files changed, 127 insertions(+), 42 deletions(-) diff --git a/WatchIt.Website/WatchIt.Website/Components/MediaPage/CreatorRolesPanelComponent.razor b/WatchIt.Website/WatchIt.Website/Components/MediaPage/CreatorRolesPanelComponent.razor index 875dc3c..faade18 100644 --- a/WatchIt.Website/WatchIt.Website/Components/MediaPage/CreatorRolesPanelComponent.razor +++ b/WatchIt.Website/WatchIt.Website/Components/MediaPage/CreatorRolesPanelComponent.razor @@ -1,10 +1,30 @@ +@using WatchIt.Common.Model.Roles + + +
-
- Actors - -
+ @if (_loaded) + { +
+ Creators +
+ + @foreach (RoleTypeResponse roleType in _roleTypes) + { + @roleType.Name + } + +
+ +
+ } + else + { + + }
\ No newline at end of file diff --git a/WatchIt.Website/WatchIt.Website/Components/MediaPage/CreatorRolesPanelComponent.razor.cs b/WatchIt.Website/WatchIt.Website/Components/MediaPage/CreatorRolesPanelComponent.razor.cs index 4a98650..a9fcc8d 100644 --- a/WatchIt.Website/WatchIt.Website/Components/MediaPage/CreatorRolesPanelComponent.razor.cs +++ b/WatchIt.Website/WatchIt.Website/Components/MediaPage/CreatorRolesPanelComponent.razor.cs @@ -1,13 +1,16 @@ using Microsoft.AspNetCore.Components; +using WatchIt.Common.Model.Roles; using WatchIt.Website.Services.WebAPI.Media; +using WatchIt.Website.Services.WebAPI.Roles; namespace WatchIt.Website.Components.MediaPage; -public partial class ActorRolesPanelComponent : ComponentBase +public partial class CreatorRolesPanelComponent : ComponentBase { #region SERVICES [Inject] private IMediaWebAPIService MediaWebAPIService { get; set; } = default!; + [Inject] private IRolesWebAPIService RolesWebAPIService { get; set; } = default!; #endregion @@ -19,4 +22,50 @@ public partial class ActorRolesPanelComponent : ComponentBase [Parameter] public required long Id { get; set; } #endregion + + + + #region FIELDS + + private RoleListComponent _roleListComponent; + + private bool _loaded; + + private IEnumerable _roleTypes; + private CreatorRoleMediaQueryParameters _query; + + #endregion + + + + #region PRIVATE METHODS + + protected override async Task OnAfterRenderAsync(bool firstRender) + { + if (firstRender) + { + List endTasks = new List(); + + // STEP 0 + endTasks.AddRange( + [ + RolesWebAPIService.GetAllCreatorRoleTypes(successAction: data => _roleTypes = data) + ]); + + // END + await Task.WhenAll(endTasks); + _query = new CreatorRoleMediaQueryParameters { TypeId = _roleTypes.First().Id }; + + _loaded = true; + StateHasChanged(); + } + } + + private async Task CheckedTypeChanged(short value) + { + _query.TypeId = value; + await _roleListComponent.Refresh(); + } + + #endregion } \ No newline at end of file diff --git a/WatchIt.Website/WatchIt.Website/Components/MediaPage/RoleComponent.razor b/WatchIt.Website/WatchIt.Website/Components/MediaPage/RoleComponent.razor index b132811..c1389a2 100644 --- a/WatchIt.Website/WatchIt.Website/Components/MediaPage/RoleComponent.razor +++ b/WatchIt.Website/WatchIt.Website/Components/MediaPage/RoleComponent.razor @@ -19,17 +19,7 @@ @(_person.Name)@(Role is ActorRoleResponse actor ? $" as {actor.Name}" : string.Empty) } - + diff --git a/WatchIt.Website/WatchIt.Website/Components/MediaPage/RoleListComponent.razor b/WatchIt.Website/WatchIt.Website/Components/MediaPage/RoleListComponent.razor index ad41b4c..d5fce9b 100644 --- a/WatchIt.Website/WatchIt.Website/Components/MediaPage/RoleListComponent.razor +++ b/WatchIt.Website/WatchIt.Website/Components/MediaPage/RoleListComponent.razor @@ -3,29 +3,36 @@ @if (_loaded) { -
- @for (int i = 0; i < _roles.Count; i++) - { - if (i > 0) + if (_roles.Count > 0) + { +
+ @for (int i = 0; i < _roles.Count; i++) { -
+ if (i > 0) + { +
+ } + + + } - - - - } - @if (!_allItemsLoaded) - { -
- -
- } -
+ @if (!_allItemsLoaded) + { +
+ +
+ } +
+ } + else + { + No roles found + } } else { diff --git a/WatchIt.Website/WatchIt.Website/Components/MediaPage/RoleListComponent.razor.cs b/WatchIt.Website/WatchIt.Website/Components/MediaPage/RoleListComponent.razor.cs index a9809de..fcf3306 100644 --- a/WatchIt.Website/WatchIt.Website/Components/MediaPage/RoleListComponent.razor.cs +++ b/WatchIt.Website/WatchIt.Website/Components/MediaPage/RoleListComponent.razor.cs @@ -1,3 +1,4 @@ +using System.ComponentModel; using Microsoft.AspNetCore.Components; using WatchIt.Common.Model.Roles; using WatchIt.Common.Query; @@ -31,6 +32,22 @@ public partial class RoleListComponent : ComponentBase where TRol + #region PUBLIC METHODS + + public async Task Refresh() + { + _loaded = false; + _roles.Clear(); + Query.After = null; + Query.First = _pageSize; + await GetRoles(true); + _loaded = true; + } + + #endregion + + + #region PRIVATE METHODS protected override async Task OnAfterRenderAsync(bool firstRender) diff --git a/WatchIt.Website/WatchIt.Website/Pages/MediaPage.razor b/WatchIt.Website/WatchIt.Website/Pages/MediaPage.razor index 1e5ac8e..4785305 100644 --- a/WatchIt.Website/WatchIt.Website/Pages/MediaPage.razor +++ b/WatchIt.Website/WatchIt.Website/Pages/MediaPage.razor @@ -207,7 +207,9 @@ else - Test2 +
+ +