@page "/" @inject VoiceWorksClient Client @using JSMR.Application.VoiceWorks.Queries.Search @using JSMR.UI.Blazor.Services Home @if (availableVoiceWorks is null) {

Loading…

} else if (availableVoiceWorks.Length == 0) {

No results.

} else { }
@if (upcomingVoiceWorks is null) {

Loading…

} else if (upcomingVoiceWorks.Length == 0) {

No results.

} else { }
@if (announcedVoiceWorks is null) {

Loading…

} else if (announcedVoiceWorks.Length == 0) {

No results.

} else { }
@code { VoiceWorkSearchResult[]? availableVoiceWorks; VoiceWorkSearchResult[]? upcomingVoiceWorks; VoiceWorkSearchResult[]? announcedVoiceWorks; protected override Task OnInitializedAsync() { _ = LoadAvailableVoiceWorksAsync(); _ = LoadUpcomingVoiceWorksAsync(); _ = LoadAnnouncedVoiceWorksAsync(); // availableVoiceWorks = await GetAvailableVoiceWorksAsync(); // upcomingVoiceWorks = await GetUpcomingVoiceWorksAsync(); return Task.CompletedTask; } private async Task LoadAvailableVoiceWorksAsync() { SearchVoiceWorksRequest request = new( Options: new() { Criteria = new() { CircleStatus = CircleStatus.Favorited, ReleaseDateStart = DateOnly.FromDateTime(DateTime.Today.AddDays(-6)) }, SortOptions = [ new(VoiceWorkSortField.ReleaseDate, Application.Common.Search.SortDirection.Descending), new(VoiceWorkSortField.Downloads, Application.Common.Search.SortDirection.Descending) ] } ); var result = await Client.SearchAsync(request); availableVoiceWorks = result.Results.Items; await InvokeAsync(StateHasChanged); } private async Task LoadUpcomingVoiceWorksAsync() { SearchVoiceWorksRequest request = new( Options: new() { Criteria = new() { CircleStatus = CircleStatus.Favorited, ScheduledReleaseDateEnd = DateOnly.FromDateTime(DateTime.Today.AddDays(8)) }, SortOptions = [ new(VoiceWorkSortField.ScheduledReleaseDate, Application.Common.Search.SortDirection.Ascending), new(VoiceWorkSortField.WishlistCount, Application.Common.Search.SortDirection.Descending) ] } ); var result = await Client.SearchAsync(request); upcomingVoiceWorks = result.Results.Items; await InvokeAsync(StateHasChanged); } private async Task LoadAnnouncedVoiceWorksAsync() { SearchVoiceWorksRequest request = new( Options: new() { Criteria = new() { Status = Domain.Enums.VoiceWorkStatus.NewAndUpcoming }, SortOptions = [ //new(VoiceWorkSortField.Fa, Application.Common.Search.SortDirection.Ascending), new(VoiceWorkSortField.WishlistCount, Application.Common.Search.SortDirection.Descending) ] } ); var result = await Client.SearchAsync(request); announcedVoiceWorks = result.Results.Items; await InvokeAsync(StateHasChanged); } }