@using RobotNet.RobotShares.OpenACS
@inject ISnackbar Snackbar
@inject IHttpClientFactory HttpClientFactory
Traffic Request
@foreach (TrafficRequestType item in Enum.GetValues(typeof(TrafficRequestType)))
{
}
@code {
private bool OverlayIsVisible;
private RobotDto[] Robots = [];
private string RobotId = string.Empty;
private string ZoneId = string.Empty;
private TrafficRequestType Type = TrafficRequestType.OUT;
protected override async Task OnAfterRenderAsync(bool firstRender)
{
await base.OnAfterRenderAsync(firstRender);
if (!firstRender) return;
await LoadRobots();
}
private async Task LoadRobots()
{
OverlayIsVisible = true;
StateHasChanged();
using var Http = HttpClientFactory.CreateClient("RobotManagerAPI");
var robots = await Http.GetFromJsonAsync>>("api/Robots");
if (robots is null) Snackbar.Add("Lỗi giao tiếp với hệ thống", Severity.Error);
else if (!robots.IsSuccess) Snackbar.Add($"Có lỗi xảy ra: {robots.Message}", Severity.Error);
else if (robots.Data is not null && robots.Data.Any())
{
Robots = [..robots.Data];
}
OverlayIsVisible = false;
StateHasChanged();
}
private async Task> UrlSearch(string value, CancellationToken token)
{
await Task.Delay(5, token);
if (string.IsNullOrEmpty(value))
{
return Robots.Select(n => n.Name);
}
return Robots.Where(x => x.Name.Contains(value, StringComparison.InvariantCultureIgnoreCase)).Select(n => n.Name);
}
private async Task Request()
{
if(string.IsNullOrEmpty(RobotId))
{
Snackbar.Add($"Trường thông tin Robot Id không được để trống", Severity.Warning);
return;
}
if (string.IsNullOrEmpty(ZoneId))
{
Snackbar.Add($"Trường thông tin Zone Id không được để trống", Severity.Warning);
return;
}
OverlayIsVisible = true;
StateHasChanged();
using var Http = HttpClientFactory.CreateClient("RobotManagerAPI");
var request = await (await Http.PostAsJsonAsync("api/TrafficACSRequest", new TrafficACSRequestModel() { RobotId = RobotId, ZoneId = ZoneId, Type = Type})).Content.ReadFromJsonAsync>();
if (request is null) Snackbar.Add("Lỗi giao tiếp với hệ thống", Severity.Warning);
else if (!request.IsSuccess) Snackbar.Add($"Có lỗi xảy ra: {request.Message}", Severity.Warning);
else if (!request.Data) Snackbar.Add("ACS trả về không thành công thành công", Severity.Warning);
else if (request.Data) Snackbar.Add($"{(string.IsNullOrEmpty(request.Message) ? "Yêu cầu thành công" : request.Message)}", Severity.Success);
OverlayIsVisible = false;
StateHasChanged();
}
}