feat : edit admin

pull/38/head
Maxence GUITARD 1 year ago
parent 0fbcee4ada
commit b3b630afda

@ -29,7 +29,7 @@ namespace Blazor.Pages.Admins
var formContent = new FormUrlEncodedContent(formData); 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()) using (var httpClient = new HttpClient())
{ {

@ -51,27 +51,33 @@ public partial class Administrators
{ {
administrators = new List<Administrator>(response); // an actual data for the current page administrators = new List<Administrator>(response); // an actual data for the current page
totalItem = administrators.Count; totalItem = administrators.Count;
var currentData = await LocalStorage.GetItemAsync<Administrator[]>("data");
if (currentData == null || currentData.Length != administrators.Count)
{
var originalData = Http.GetFromJsonAsync<Administrator[]>($"https://trusting-panini.87-106-126-109.plesk.page/api/administrators").Result;
await LocalStorage.SetItemAsync("data", originalData);
}
} }
} }
protected override async Task OnAfterRenderAsync(bool firstRender) //protected override async Task OnAfterRenderAsync(bool firstRender)
{ //{
// Do not treat this action if is not the first render // // Do not treat this action if is not the first render
if (!firstRender) // if (!firstRender)
{ // {
return; // return;
} // }
var currentData = await LocalStorage.GetItemAsync<AdministratorModel[]>("data"); // var currentData = await LocalStorage.GetItemAsync<AdministratorModel[]>("data");
// Check if data exist in the local storage // // Check if data exist in the local storage
if (currentData == null) // 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) // // 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<AdministratorModel[]>($"https://trusting-panini.87-106-126-109.plesk.page/api/administrators").Result; // var originalData = Http.GetFromJsonAsync<AdministratorModel[]>($"https://trusting-panini.87-106-126-109.plesk.page/api/administrators").Result;
await LocalStorage.SetItemAsync("data", originalData); // await LocalStorage.SetItemAsync("data", originalData);
} // }
} //}
private async void OnDelete(int id) private async void OnDelete(int id)
{ {

@ -2,18 +2,18 @@
<h3>EditAdministrator</h3> <h3>EditAdministrator</h3>
<EditForm Model="@administratorsModel" OnValidSubmit="@HandleValidSubmit"> <EditForm Model="@administratorModel" OnValidSubmit="@HandleValidSubmit">
<DataAnnotationsValidator /> <DataAnnotationsValidator />
<ValidationSummary /> <ValidationSummary />
<p> <p>
<label for="username"> <label for="username">
Username: Username:
<InputText id="username" @bind-Value="administratorsModel.Username" /> <InputText id="username" @bind-Value="administratorModel.Username" />
</label> </label>
<label for="hashedPassword"> <label for="hashedPassword">
Password: Password:
<InputText id="hashedPassword" @bind-Value="administratorsModel.HashedPassword" /> <InputText id="hashedPassword" @bind-Value="administratorModel.HashedPassword" />
</label> </label>
</p> </p>

@ -10,7 +10,7 @@ namespace Blazor.Pages.Admins
[Parameter] [Parameter]
public int Id { get; set; } public int Id { get; set; }
private AdministratorModel administratorsModel = new(); private AdministratorModel administratorModel = new();
[Inject] [Inject]
public IDataService DataService { get; set; } public IDataService DataService { get; set; }
@ -26,16 +26,40 @@ namespace Blazor.Pages.Admins
var administrator = await DataService.GetAdminById(Id); var administrator = await DataService.GetAdminById(Id);
// Set the model with the admin // Set the model with the admin
administratorsModel = new AdministratorModel administratorModel = new AdministratorModel
{ {
Id = administrator.Id, Id = administrator.Id,
Username = administrator.Username Username = administrator.Username,
HashedPassword = administrator.HashedPassword
}; };
} }
private async void HandleValidSubmit() private async void HandleValidSubmit()
{ {
await DataService.Update(Id, administratorsModel); administratorModel.HashPassword(administratorModel.HashedPassword);
await DataService.Update(Id, administratorModel);
var formData = new List<KeyValuePair<string, string>>();
formData.Add(new KeyValuePair<string, string>("username", administratorModel.Username));
formData.Add(new KeyValuePair<string, string>("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"); NavigationManager.NavigateTo("administrators");
} }

@ -1,40 +1,40 @@
using Blazor.Models; using Blazor.Models;
using Blazor.Services; using Blazor.Services;
using Microsoft.AspNetCore.Components; using Microsoft.AspNetCore.Components;
namespace Blazor.Pages.Chapters; namespace Blazor.Pages.Chapters;
public partial class EditChapter public partial class EditChapter
{ {
[Parameter] [Parameter]
public int Id { get; set; } public int Id { get; set; }
private ChapterModel chapterModel = new(); private ChapterModel chapterModel = new();
[Inject] [Inject]
public IDataService DataService { get; set; } public IDataService DataService { get; set; }
[Inject] [Inject]
public NavigationManager NavigationManager { get; set; } public NavigationManager NavigationManager { get; set; }
[Inject] [Inject]
public IWebHostEnvironment WebHostEnvironment { get; set; } public IWebHostEnvironment WebHostEnvironment { get; set; }
protected override async Task OnInitializedAsync() protected override async Task OnInitializedAsync()
{ {
var chapter = await DataService.GetById(Id); var chapter = await DataService.GetById(Id);
// Set the model with the chapter // Set the model with the chapter
chapterModel = new ChapterModel chapterModel = new ChapterModel
{ {
Id = chapter.Id, Id = chapter.Id,
Name = chapter.Name Name = chapter.Name
}; };
} }
private async void HandleValidSubmit() private async void HandleValidSubmit()
{ {
await DataService.Update(Id, chapterModel); await DataService.Update(Id, chapterModel);
var formData = new List<KeyValuePair<string, string>>(); var formData = new List<KeyValuePair<string, string>>();
formData.Add(new KeyValuePair<string, string>("name", chapterModel.Name)); formData.Add(new KeyValuePair<string, string>("name", chapterModel.Name));
@ -55,7 +55,7 @@ public partial class EditChapter
{ {
var errorResponse = await response.Content.ReadAsStringAsync(); var errorResponse = await response.Content.ReadAsStringAsync();
} }
} }
NavigationManager.NavigateTo("chapters"); NavigationManager.NavigateTo("chapters");
} }
} }

Loading…
Cancel
Save