67 lines
1.8 KiB
Plaintext
67 lines
1.8 KiB
Plaintext
@page "/voiceworks"
|
|
@using JSMR.Application.Common.Search
|
|
@using JSMR.Application.VoiceWorks.Queries.Search
|
|
@using JSMR.UI.Blazor.Components
|
|
@using JSMR.UI.Blazor.Services
|
|
@inject VoiceWorksClient Client
|
|
|
|
<PageTitle>Voice Works</PageTitle>
|
|
|
|
<h3>Voice Works</h3>
|
|
|
|
<JProductCollection Products="searchResults?.Items"></JProductCollection>
|
|
|
|
@if (searchResults is not null)
|
|
{
|
|
<JPagination PageNumber="PageNumber" PageNumberChanged="OnPageNumberChanged" PageSize="PageSize" PageSizeChanged="OnPageSizeChanged" @bind-TotalItems="searchResults.TotalItems" />
|
|
}
|
|
|
|
@code {
|
|
public int PageNumber { get; set; } = 1;
|
|
public int PageSize { get; set; } = 100;
|
|
|
|
SearchResult<VoiceWorkSearchResult>? searchResults;
|
|
|
|
protected override async Task OnInitializedAsync()
|
|
{
|
|
await UpdateDataAsync(true);
|
|
}
|
|
|
|
private async Task UpdateDataAsync(bool resetPageNumber)
|
|
{
|
|
if (resetPageNumber)
|
|
PageNumber = 1;
|
|
|
|
SearchVoiceWorksRequest request = new(
|
|
Options: new()
|
|
{
|
|
Criteria = new()
|
|
{
|
|
SupportedLanguages = [Domain.Enums.Language.English]
|
|
},
|
|
SortOptions =
|
|
[
|
|
new(VoiceWorkSortField.ReleaseDate, Application.Common.Search.SortDirection.Descending)
|
|
],
|
|
PageNumber = PageNumber,
|
|
PageSize = PageSize
|
|
}
|
|
);
|
|
|
|
SearchVoiceWorksResponse? response = await Client.SearchAsync(request);
|
|
|
|
searchResults = response?.Results;
|
|
}
|
|
|
|
public async Task OnPageNumberChanged(int newPageNumber)
|
|
{
|
|
PageNumber = newPageNumber;
|
|
await UpdateDataAsync(false);
|
|
}
|
|
|
|
public async Task OnPageSizeChanged(int newPageSize)
|
|
{
|
|
PageSize = newPageSize;
|
|
await UpdateDataAsync(true);
|
|
}
|
|
} |