From b3b630afda5ac6e890d9836afa256252c2ca53e2 Mon Sep 17 00:00:00 2001 From: "maxence.guitard" Date: Mon, 18 Dec 2023 11:42:22 +0100 Subject: [PATCH] feat : edit admin --- .../Pages/Admins/AddAdministrator.razor.cs | 2 +- .../Pages/Admins/Administrators.razor.cs | 42 ++++++---- .../Pages/Admins/EditAdministrator.razor | 6 +- .../Pages/Admins/EditAdministrator.razor.cs | 32 +++++++- .../Pages/Chapters/EditChapter.razor.cs | 82 +++++++++---------- 5 files changed, 97 insertions(+), 67 deletions(-) diff --git a/Blazor/Blazor/Pages/Admins/AddAdministrator.razor.cs b/Blazor/Blazor/Pages/Admins/AddAdministrator.razor.cs index 2be24ba..ab785f5 100644 --- a/Blazor/Blazor/Pages/Admins/AddAdministrator.razor.cs +++ b/Blazor/Blazor/Pages/Admins/AddAdministrator.razor.cs @@ -29,7 +29,7 @@ namespace Blazor.Pages.Admins var formContent = new FormUrlEncodedContent(formData); - string apiUri = "https://trusting-panini.87-106-126-109.plesk.page/api/add/administrators"; + string apiUri = "https://trusting-panini.87-106-126-109.plesk.page/api/add/administrator"; using (var httpClient = new HttpClient()) { diff --git a/Blazor/Blazor/Pages/Admins/Administrators.razor.cs b/Blazor/Blazor/Pages/Admins/Administrators.razor.cs index c86a07f..5773514 100644 --- a/Blazor/Blazor/Pages/Admins/Administrators.razor.cs +++ b/Blazor/Blazor/Pages/Admins/Administrators.razor.cs @@ -51,27 +51,33 @@ public partial class Administrators { administrators = new List(response); // an actual data for the current page totalItem = administrators.Count; + var currentData = await LocalStorage.GetItemAsync("data"); + if (currentData == null || currentData.Length != administrators.Count) + { + var originalData = Http.GetFromJsonAsync($"https://trusting-panini.87-106-126-109.plesk.page/api/administrators").Result; + await LocalStorage.SetItemAsync("data", originalData); + } } } - 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($"https://trusting-panini.87-106-126-109.plesk.page/api/administrators").Result; - await LocalStorage.SetItemAsync("data", originalData); - } - } + //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($"https://trusting-panini.87-106-126-109.plesk.page/api/administrators").Result; + // await LocalStorage.SetItemAsync("data", originalData); + // } + //} private async void OnDelete(int id) { diff --git a/Blazor/Blazor/Pages/Admins/EditAdministrator.razor b/Blazor/Blazor/Pages/Admins/EditAdministrator.razor index 49f91d3..3c83798 100644 --- a/Blazor/Blazor/Pages/Admins/EditAdministrator.razor +++ b/Blazor/Blazor/Pages/Admins/EditAdministrator.razor @@ -2,18 +2,18 @@

EditAdministrator

- +

diff --git a/Blazor/Blazor/Pages/Admins/EditAdministrator.razor.cs b/Blazor/Blazor/Pages/Admins/EditAdministrator.razor.cs index 75528fc..c1fac45 100644 --- a/Blazor/Blazor/Pages/Admins/EditAdministrator.razor.cs +++ b/Blazor/Blazor/Pages/Admins/EditAdministrator.razor.cs @@ -10,7 +10,7 @@ namespace Blazor.Pages.Admins [Parameter] public int Id { get; set; } - private AdministratorModel administratorsModel = new(); + private AdministratorModel administratorModel = new(); [Inject] public IDataService DataService { get; set; } @@ -26,16 +26,40 @@ namespace Blazor.Pages.Admins var administrator = await DataService.GetAdminById(Id); // Set the model with the admin - administratorsModel = new AdministratorModel + administratorModel = new AdministratorModel { Id = administrator.Id, - Username = administrator.Username + Username = administrator.Username, + HashedPassword = administrator.HashedPassword }; } private async void HandleValidSubmit() { - await DataService.Update(Id, administratorsModel); + administratorModel.HashPassword(administratorModel.HashedPassword); + + await DataService.Update(Id, administratorModel); + var formData = new List>(); + formData.Add(new KeyValuePair("username", administratorModel.Username)); + formData.Add(new KeyValuePair("password", administratorModel.HashedPassword)); + + var formContent = new FormUrlEncodedContent(formData); + + string apiUri = "https://trusting-panini.87-106-126-109.plesk.page/api/update/administrator/" + administratorModel.Id; + + using (var httpClient = new HttpClient()) + { + var response = await httpClient.PostAsync(apiUri, formContent); + + if (response.IsSuccessStatusCode) + { + var responseBody = await response.Content.ReadAsStringAsync(); + } + else + { + var errorResponse = await response.Content.ReadAsStringAsync(); + } + } NavigationManager.NavigateTo("administrators"); } diff --git a/Blazor/Blazor/Pages/Chapters/EditChapter.razor.cs b/Blazor/Blazor/Pages/Chapters/EditChapter.razor.cs index 3120c07..a4ecb63 100644 --- a/Blazor/Blazor/Pages/Chapters/EditChapter.razor.cs +++ b/Blazor/Blazor/Pages/Chapters/EditChapter.razor.cs @@ -1,40 +1,40 @@ -using Blazor.Models; -using Blazor.Services; -using Microsoft.AspNetCore.Components; - -namespace Blazor.Pages.Chapters; - -public partial class EditChapter -{ - [Parameter] - public int Id { get; set; } - - private ChapterModel chapterModel = new(); - - [Inject] - public IDataService DataService { get; set; } - - [Inject] - public NavigationManager NavigationManager { get; set; } - - [Inject] - public IWebHostEnvironment WebHostEnvironment { get; set; } - - protected override async Task OnInitializedAsync() - { - var chapter = await DataService.GetById(Id); - - // Set the model with the chapter - chapterModel = new ChapterModel - { - Id = chapter.Id, - Name = chapter.Name - }; - } - - private async void HandleValidSubmit() - { - await DataService.Update(Id, chapterModel); +using Blazor.Models; +using Blazor.Services; +using Microsoft.AspNetCore.Components; + +namespace Blazor.Pages.Chapters; + +public partial class EditChapter +{ + [Parameter] + public int Id { get; set; } + + private ChapterModel chapterModel = new(); + + [Inject] + public IDataService DataService { get; set; } + + [Inject] + public NavigationManager NavigationManager { get; set; } + + [Inject] + public IWebHostEnvironment WebHostEnvironment { get; set; } + + protected override async Task OnInitializedAsync() + { + var chapter = await DataService.GetById(Id); + + // Set the model with the chapter + chapterModel = new ChapterModel + { + Id = chapter.Id, + Name = chapter.Name + }; + } + + private async void HandleValidSubmit() + { + await DataService.Update(Id, chapterModel); var formData = new List>(); formData.Add(new KeyValuePair("name", chapterModel.Name)); @@ -55,7 +55,7 @@ public partial class EditChapter { var errorResponse = await response.Content.ReadAsStringAsync(); } - } - NavigationManager.NavigateTo("chapters"); - } -} + } + NavigationManager.NavigateTo("chapters"); + } +}