diff --git a/Blazor/Blazor/Pages/Admins/Administrators.razor.cs b/Blazor/Blazor/Pages/Admins/Administrators.razor.cs index f76c86a..4ab4c1f 100644 --- a/Blazor/Blazor/Pages/Admins/Administrators.razor.cs +++ b/Blazor/Blazor/Pages/Admins/Administrators.razor.cs @@ -1,6 +1,14 @@ using Microsoft.AspNetCore.Components; using Blazorise.DataGrid; using Blazor.ViewClasses; +using Blazor.Modals; +using Blazor.Models; +using Blazored.LocalStorage; +using Blazored.Modal.Services; +using Blazor.Modals; +using Blazor.Services; +using Blazored.Modal; +using Blazored.Modal; namespace Blazor.Pages.Admins; @@ -8,7 +16,18 @@ public partial class Administrators { public List administrators; - private int totalItem; + private int totalItem; + [CascadingParameter] + public IModalService Modal { get; set; } + + [Inject] + public IDataService DataService { get; set; } + + [Inject] + public IWebHostEnvironment WebHostEnvironment { get; set; } + + [Inject] + public ILocalStorageService LocalStorage { get; set; } [Inject] public HttpClient Http { get; set; } @@ -32,5 +51,43 @@ public partial class Administrators totalItem = (await Http.GetFromJsonAsync>($"{NavigationManager.BaseUri}fake-administrator.json")).Count; administrators = new List(response); // an actual data for the current page } + } + + protected override async Task OnAfterRenderAsync(bool firstRender) + { + // Do not treat this action if is not the first render + if (!firstRender) + { + return; + } + + var currentData = await LocalStorage.GetItemAsync("data"); + + // Check if data exist in the local storage + if (currentData == null) + { + // this code add in the local storage the fake data (we load the data sync for initialize the data before load the OnReadData method) + var originalData = Http.GetFromJsonAsync($"trusting-panini.87-106-126-109.plesk.page/api/chapters").Result; + await LocalStorage.SetItemAsync("data", originalData); + } + } + + private async void OnDelete(int id) + { + var parameters = new ModalParameters(); + parameters.Add(nameof(Administrator.Id), id); + + var modal = Modal.Show("Delete Confirmation", parameters); + var result = modal.Result; + + if (result.IsCanceled) + { + return; + } + + await DataService.Delete(id); + + // Reload the page + NavigationManager.NavigateTo("administrators", true); } }