From b86d48657e9abdab4c4b4299470505b851392b64 Mon Sep 17 00:00:00 2001 From: Joseph Doherty Date: Tue, 6 Jan 2026 10:19:53 -0500 Subject: [PATCH] feat(client): migrate SearchQueue.razor to ISearchApiClient - Replace ISearchService injection with ISearchApiClient - Add @using for JdeScoping.Core.ApiContracts and JdeScoping.Client.Extensions - Update LoadQueueAsync to use result.Switch() pattern with ApiResult - Add _errorMessage field for error display - Add RadzenAlert for error message display in UI --- .../JdeScoping.Client/Pages/SearchQueue.razor | 22 +++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/NEW/src/JdeScoping.Client/Pages/SearchQueue.razor b/NEW/src/JdeScoping.Client/Pages/SearchQueue.razor index f289dea..28099c4 100644 --- a/NEW/src/JdeScoping.Client/Pages/SearchQueue.razor +++ b/NEW/src/JdeScoping.Client/Pages/SearchQueue.razor @@ -1,6 +1,8 @@ @page "/search/queue" @attribute [Authorize] -@inject ISearchService SearchService +@using JdeScoping.Core.ApiContracts +@using JdeScoping.Client.Extensions +@inject ISearchApiClient SearchApi @inject IHubConnectionService HubConnection @implements IDisposable @@ -30,6 +32,12 @@ { } +else if (!string.IsNullOrEmpty(_errorMessage)) +{ + + @_errorMessage + +} else { _searches = []; private RadzenDataGrid? _grid; private bool _isLoading = true; + private string? _errorMessage; private string _statusMessage = ""; private string _statusUpdateDt = ""; @@ -78,9 +87,18 @@ else private async Task LoadQueueAsync() { _isLoading = true; + _errorMessage = null; try { - _searches = await SearchService.GetQueueAsync(); + var result = await SearchApi.GetQueuedSearchesAsync(); + result.Switch( + searches => { _searches = searches.ToClientList(); }, + notFound => { _errorMessage = "Queue not found."; _searches = []; }, + validation => { _errorMessage = string.Join("; ", validation.FieldErrors.SelectMany(e => e.Value)); }, + unauthorized => { _errorMessage = "Session expired. Please login again."; }, + forbidden => { _errorMessage = "Access denied."; }, + error => { _errorMessage = error.Message; } + ); } finally {