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 {