@page "/voiceworks" @using JSMR.Application.Common.Search @using JSMR.Application.VoiceWorks.Queries.Search @using JSMR.UI.Blazor.Components @using JSMR.UI.Blazor.Filters @using JSMR.UI.Blazor.Services @using JSMR.UI.Blazor.Shared @using Microsoft.AspNetCore.WebUtilities @inject VoiceWorksClient Client @inherits SearchPageBase Voice Works

Voice Works

@if (Result is not null) { } @code { protected override VoiceWorkFilterState ParseStateFromUri(string absoluteUri) => VoiceWorkFilterState.FromQuery(new Uri(absoluteUri).Query); protected override string BuildUri(VoiceWorkFilterState state) { var basePath = new Uri(Nav.Uri).GetLeftPart(UriPartial.Path); return Microsoft.AspNetCore.WebUtilities.QueryHelpers.AddQueryString(basePath, state.ToQuery()); } protected override bool IsThisPage(string absoluteUri) => Nav.ToBaseRelativePath(absoluteUri).StartsWith("voiceworks", StringComparison.OrdinalIgnoreCase); protected override Task> ExecuteSearchAsync(VoiceWorkFilterState state, CancellationToken ct) => Client.SearchAsync(state.ToSearchRequest(), ct).ContinueWith(t => t.Result?.Results ?? new SearchResult(), ct); }