158 lines
4.6 KiB
Plaintext
158 lines
4.6 KiB
Plaintext
@page "/"
|
||
@inject VoiceWorksClient Client
|
||
@using JSMR.Application.VoiceWorks.Queries.Search
|
||
@using JSMR.UI.Blazor.Services
|
||
|
||
<PageTitle>Home</PageTitle>
|
||
|
||
<MudTabs Elevation="2" Rounded="true" ApplyEffectsToContainer="true" PanelClass="pa-6">
|
||
<MudTabPanel Text="Available" Icon="@Icons.Material.Filled.Home">
|
||
@if (availableVoiceWorks is null)
|
||
{
|
||
<p>Loading…</p>
|
||
}
|
||
else if (availableVoiceWorks.Length == 0)
|
||
{
|
||
<p>No results.</p>
|
||
}
|
||
else
|
||
{
|
||
<ul>
|
||
@foreach (var v in availableVoiceWorks)
|
||
{
|
||
<li>@v.ProductId – @v.ProductName</li>
|
||
}
|
||
</ul>
|
||
}
|
||
</MudTabPanel>
|
||
<MudTabPanel Text="Upcoming" Icon="@Icons.Material.Filled.ArrowUpward">
|
||
@if (upcomingVoiceWorks is null)
|
||
{
|
||
<p>Loading…</p>
|
||
}
|
||
else if (upcomingVoiceWorks.Length == 0)
|
||
{
|
||
<p>No results.</p>
|
||
}
|
||
else
|
||
{
|
||
<ul>
|
||
@foreach (var v in upcomingVoiceWorks)
|
||
{
|
||
<li>@v.ProductId – @v.ProductName</li>
|
||
}
|
||
</ul>
|
||
}
|
||
</MudTabPanel>
|
||
<MudTabPanel Text="Announcements" Icon="@Icons.Material.Filled.Home">
|
||
@if (announcedVoiceWorks is null)
|
||
{
|
||
<p>Loading…</p>
|
||
}
|
||
else if (announcedVoiceWorks.Length == 0)
|
||
{
|
||
<p>No results.</p>
|
||
}
|
||
else
|
||
{
|
||
<ul>
|
||
@foreach (var v in announcedVoiceWorks)
|
||
{
|
||
<li>@v.ProductId – @v.ProductName</li>
|
||
}
|
||
</ul>
|
||
}
|
||
</MudTabPanel>
|
||
</MudTabs>
|
||
|
||
@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);
|
||
}
|
||
} |