@page "/navigation-maps/elements/{Id:guid}" @attribute [Authorize] @using RobotNet.MapShares.Dtos @using RobotNet.Shares @using RobotNet.WebApp.Maps.Components.Element @inject IJSRuntime JSRuntime @inject IHttpClientFactory HttpClientFactory @inject ISnackbar Snackbar Map Element
Is Loadding ...
@code { [Parameter, EditorRequired] public Guid Id { get; set; } public List ElementModels { get; set; } = []; public List Elements { get; set; } = []; private bool IsLoading { get; set; } private MapInfoDto MapInfo = new(); private ElementDefaultProperty ElementDefaultPropertyRef = default!; private ElementImage ElementImageRef = default!; private MapElement MapElementRef = default!; private ElementPropertyTable ElementPropertyRef = default!; private HttpClient Http = default!; protected override async Task OnAfterRenderAsync(bool firstRender) { await base.OnAfterRenderAsync(firstRender); if (!firstRender) return; Http = HttpClientFactory.CreateClient("MapManagerAPI"); var reponse = await Http.GetFromJsonAsync>($"api/MapsManager/{Id}"); if (reponse is not null && reponse.Data is not null) MapInfo = reponse.Data; await LoadElementModels(); StateHasChanged(); } private async Task LoadElementModels() { IsLoading = true; ElementModels.Clear(); StateHasChanged(); var elModels = await Http.GetFromJsonAsync>>($"api/ElementModels/map/{Id}"); if (elModels is null) Snackbar.Add("Lỗi giao tiếp với hệ thống", Severity.Error); else if (!elModels.IsSuccess) Snackbar.Add($"Có lỗi xảy ra: {elModels.Message}", Severity.Error); else if (elModels.Data is null || !elModels.Data.Any()) { Snackbar.Add("Không có mô hình phần tử nào được tìm thấy", Severity.Warning); } else { ElementModels.AddRange(elModels.Data.OrderBy(el => el.Name)); } IsLoading = false; StateHasChanged(); } private async Task ElementModelSelectChanged(ElementModelDto? model) { ElementDefaultPropertyRef.SetElementModel(model); ElementImageRef.SetElementModel(model); await MapElementRef.SetData(model); } private void ElementSelectChanged(ElementDto? model) => ElementPropertyRef.SetProperties(model); }