@using RobotNet.RobotShares.OpenACS @inject ISnackbar Snackbar @inject IHttpClientFactory HttpClientFactory Traffic Request
@foreach (TrafficRequestType item in Enum.GetValues(typeof(TrafficRequestType))) { }
Request
@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(); } }