Added Blazor projects. Minor API/core updates.
This commit is contained in:
157
JSMR.UI.Blazor/Pages/Home.razor
Normal file
157
JSMR.UI.Blazor/Pages/Home.razor
Normal file
@@ -0,0 +1,157 @@
|
||||
@page "/"
|
||||
@inject VoiceWorksClient Client
|
||||
@using JSMR.Application.VoiceWorks.Queries.Search
|
||||
|
||||
<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);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user