@using Microsoft.AspNetCore.Components.WebAssembly.Authentication @inject ISnackbar Snackbar @inject IHttpClientFactory HttpClientFactory Dashboard Mission Names
Add
@foreach(var missionName in MissionNames) {
@missionName
}
Update
@code { private List MissionNames = []; private bool OverlayIsVisible; private string MissionName = ""; protected override async Task OnAfterRenderAsync(bool firstRender) { await base.OnAfterRenderAsync(firstRender); if (!firstRender) return; await LoadMisison(); } private async Task LoadMisison() { try { OverlayIsVisible = true; StateHasChanged(); using var client = HttpClientFactory.CreateClient("ScriptManagerAPI"); var mission = await client.GetFromJsonAsync>("api/DashboardConfig"); if (mission is null || mission.Data is null || !mission.IsSuccess) MissionNames = []; else MissionNames = [.. mission.Data]; OverlayIsVisible = false; StateHasChanged(); } catch (AccessTokenNotAvailableException ex) { ex.Redirect(); } } private async Task Update() { try { OverlayIsVisible = true; StateHasChanged(); using var Http = HttpClientFactory.CreateClient("ScriptManagerAPI"); var result = await (await Http.PostAsJsonAsync($"api/DashboardConfig", MissionNames)).Content.ReadFromJsonAsync(); if (result is null) { Snackbar.Add("Lỗi giao tiếp với hệ thống", Severity.Warning); return; } else if (!result.IsSuccess) { Snackbar.Add(result.Message ?? "Cập nhật không thành công", Severity.Warning); return; } OverlayIsVisible = false; Snackbar.Add("Cập nhật thành công", Severity.Success); StateHasChanged(); } catch (AccessTokenNotAvailableException ex) { ex.Redirect(); } } private void Add() { if (string.IsNullOrEmpty(MissionName)) { Snackbar.Add("Vui lòng nhập mission name", Severity.Warning); return; } if (MissionNames.Contains(MissionName)) { Snackbar.Add("Mission name đã tồn tại", Severity.Warning); return; } MissionNames.Add(MissionName); StateHasChanged(); } }