oi-metrology/Client/Pages/RunHeaders.razor.cs

42 lines
1.6 KiB
C#

using Microsoft.AspNetCore.Components;
using OI.Metrology.Shared.DataModels;
using OI.Metrology.Shared.Models.Stateless;
using System.Net.Http.Json;
namespace OI.Metrology.Client.Pages;
public partial class RunHeaders
{
[Inject] protected HttpClient? HttpClient { get; set; }
[Inject] protected ILogger<RunHeaders>? Logger { get; set; }
private List<ToolTypeNameId>? _ToolTypeNameIdCollection;
private Metrology.Shared.DataModels.AwaitingDisposition[]? _Records;
protected override async Task OnInitializedAsync()
{
if (Logger is null)
throw new NullReferenceException(nameof(Logger));
if (HttpClient is null)
throw new NullReferenceException(nameof(HttpClient));
_ToolTypeNameIdCollection = new();
string toolTypeController = IToolTypesController<object>.GetRouteName();
// string controllerName = IMetrologyRepository<object>.GetRouteName();
try
{
Result<ToolTypeNameId[]>? result = await HttpClient.GetFromJsonAsync<Result<ToolTypeNameId[]>>($"api/{toolTypeController}");
if (result?.Results is not null)
{
_ToolTypeNameIdCollection.AddRange(result.Results);
if (_ToolTypeNameIdCollection is not null && _ToolTypeNameIdCollection.Any())
_Records = await HttpClient.GetFromJsonAsync<Metrology.Shared.DataModels.AwaitingDisposition[]>($"api/controllerName");
}
}
catch (Exception)
{
string json = await HttpClient.GetStringAsync($"api/{toolTypeController}");
Logger.LogInformation(message: json);
}
}
}