From a37f2ab60ef57650a20d35fe2ee8fa907421398b Mon Sep 17 00:00:00 2001
From: "maxence.guitard"
Date: Sat, 16 Dec 2023 11:39:04 +0100
Subject: [PATCH 1/2] feat : fonction editer et boutons
---
Blazor/Blazor/Pages/AddAdministrators.razor | 4 +-
Blazor/Blazor/Pages/Administrators.razor | 10 +++++
Blazor/Blazor/Pages/EditAdministrator.razor | 21 +++++++++
.../Blazor/Pages/EditAdministrator.razor.cs | 43 +++++++++++++++++++
4 files changed, 76 insertions(+), 2 deletions(-)
create mode 100644 Blazor/Blazor/Pages/EditAdministrator.razor
create mode 100644 Blazor/Blazor/Pages/EditAdministrator.razor.cs
diff --git a/Blazor/Blazor/Pages/AddAdministrators.razor b/Blazor/Blazor/Pages/AddAdministrators.razor
index 944bb4d..1d2d431 100644
--- a/Blazor/Blazor/Pages/AddAdministrators.razor
+++ b/Blazor/Blazor/Pages/AddAdministrators.razor
@@ -12,9 +12,9 @@
Username:
-
diff --git a/Blazor/Blazor/Pages/Administrators.razor b/Blazor/Blazor/Pages/Administrators.razor
index c4b1c77..d3191d4 100644
--- a/Blazor/Blazor/Pages/Administrators.razor
+++ b/Blazor/Blazor/Pages/Administrators.razor
@@ -4,6 +4,11 @@
Administrators
+
+
+ Ajouter
+
+
+
+
+ Editer
+
+
diff --git a/Blazor/Blazor/Pages/EditAdministrator.razor b/Blazor/Blazor/Pages/EditAdministrator.razor
new file mode 100644
index 0000000..660b5d1
--- /dev/null
+++ b/Blazor/Blazor/Pages/EditAdministrator.razor
@@ -0,0 +1,21 @@
+@page "/editAdministrator/{Id:int}"
+
+EditAdministrator
+
+
+
+
+
+
+
+ Username:
+
+
+
+ Password:
+
+
+
+
+
+
diff --git a/Blazor/Blazor/Pages/EditAdministrator.razor.cs b/Blazor/Blazor/Pages/EditAdministrator.razor.cs
new file mode 100644
index 0000000..7d0d876
--- /dev/null
+++ b/Blazor/Blazor/Pages/EditAdministrator.razor.cs
@@ -0,0 +1,43 @@
+using Blazor.Models;
+using Blazor.Services;
+using Microsoft.AspNetCore.Components;
+
+namespace Blazor.Pages
+{
+ public partial class EditAdministrator
+ {
+
+ [Parameter]
+ public int Id { get; set; }
+
+ private AdministratorsModel administratorsModel = 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 administrator = await DataService.GetAdminById(Id);
+
+ // Set the model with the admin
+ administratorsModel = new AdministratorsModel
+ {
+ Id = administrator.Id,
+ Username = administrator.Username
+ };
+ }
+
+ private async void HandleValidSubmit()
+ {
+ await DataService.Update(Id, administratorsModel);
+
+ NavigationManager.NavigateTo("administrators");
+ }
+ }
+}
From f54ea9ee8016d6a6b271a16512f6462e0ea7c92c Mon Sep 17 00:00:00 2001
From: "maxence.guitard"
Date: Sat, 16 Dec 2023 12:00:17 +0100
Subject: [PATCH 2/2] feat : supprimer admins
---
Blazor/Blazor/Pages/Administrators.razor | 1 +
Blazor/Blazor/Pages/Administrators.razor.cs | 56 +++++++++++++++++++
Blazor/Blazor/Pages/Admins.razor | 47 ----------------
Blazor/Blazor/Pages/Admins.razor.cs | 61 ---------------------
Blazor/Blazor/Services/IDataService.cs | 1 +
Blazor/Blazor/Shared/NavMenu.razor | 2 +-
6 files changed, 59 insertions(+), 109 deletions(-)
delete mode 100644 Blazor/Blazor/Pages/Admins.razor
delete mode 100644 Blazor/Blazor/Pages/Admins.razor.cs
diff --git a/Blazor/Blazor/Pages/Administrators.razor b/Blazor/Blazor/Pages/Administrators.razor
index d3191d4..53b79bf 100644
--- a/Blazor/Blazor/Pages/Administrators.razor
+++ b/Blazor/Blazor/Pages/Administrators.razor
@@ -21,6 +21,7 @@
Editer
+
diff --git a/Blazor/Blazor/Pages/Administrators.razor.cs b/Blazor/Blazor/Pages/Administrators.razor.cs
index 82fb218..8f51dac 100644
--- a/Blazor/Blazor/Pages/Administrators.razor.cs
+++ b/Blazor/Blazor/Pages/Administrators.razor.cs
@@ -1,6 +1,12 @@
using Microsoft.AspNetCore.Components;
using Blazorise.DataGrid;
using Blazor.ViewClasses;
+using Blazor.Models;
+using Blazored.LocalStorage;
+using Blazored.Modal.Services;
+using Blazor.Modals;
+using Blazor.Services;
+using Blazored.Modal;
namespace Blazor.Pages
{
@@ -13,9 +19,40 @@ namespace Blazor.Pages
[Inject]
public HttpClient Http { get; set; }
+ [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 NavigationManager NavigationManager { get; set; }
+ 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 Task OnReadData(DataGridReadDataEventArgs e)
{
if (e.CancellationToken.IsCancellationRequested)
@@ -33,5 +70,24 @@ namespace Blazor.Pages
administrators = new List(response); // an actual data for the current page
}
}
+
+ 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);
+ }
}
}
diff --git a/Blazor/Blazor/Pages/Admins.razor b/Blazor/Blazor/Pages/Admins.razor
deleted file mode 100644
index 74ddbb0..0000000
--- a/Blazor/Blazor/Pages/Admins.razor
+++ /dev/null
@@ -1,47 +0,0 @@
-@page "/admins"
-@using Blazor.Data
-@inject WeatherForecastService ForecastService
-
-Weather forecast
-
-Weather forecast
-
-This component demonstrates fetching data from a service.
-
-@if (forecasts == null)
-{
- Loading...
-}
-else
-{
-
-
-
- Date |
- Temp. (C) |
- Temp. (F) |
- Summary |
-
-
-
- @foreach (var forecast in forecasts)
- {
-
- @forecast.Date.ToShortDateString() |
- @forecast.TemperatureC |
- @forecast.TemperatureF |
- @forecast.Summary |
-
- }
-
-
-}
-
-@code {
- private WeatherForecast[]? forecasts;
-
- protected override async Task OnInitializedAsync()
- {
- forecasts = await ForecastService.GetForecastAsync(DateOnly.FromDateTime(DateTime.Now));
- }
-}
diff --git a/Blazor/Blazor/Pages/Admins.razor.cs b/Blazor/Blazor/Pages/Admins.razor.cs
deleted file mode 100644
index af73c75..0000000
--- a/Blazor/Blazor/Pages/Admins.razor.cs
+++ /dev/null
@@ -1,61 +0,0 @@
-using Blazor.Models;
-using Blazored.LocalStorage;
-using Blazorise.DataGrid;
-using Microsoft.AspNetCore.Components;
-
-namespace Blazor.Pages;
-public partial class Admins
-{
- private List items;
-
- private int totalItem;
-
- [Inject]
- public IWebHostEnvironment WebHostEnvironment { get; set; }
-
- [Inject]
- public HttpClient Http { get; set; }
-
- [Inject]
- public ILocalStorageService LocalStorage { get; set; }
-
- [Inject]
- public NavigationManager NavigationManager { get; set; }
-
- 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 Task OnReadData(DataGridReadDataEventArgs e)
- {
- if (e.CancellationToken.IsCancellationRequested)
- {
- return;
- }
-
- // When you use a real API, we use this follow code
- //var response = await Http.GetJsonAsync( $"http://my-api/api/data?page={e.Page}&pageSize={e.PageSize}" );
- var response = (await LocalStorage.GetItemAsync("data")).Skip((e.Page - 1) * e.PageSize).Take(e.PageSize).ToList();
-
- if (!e.CancellationToken.IsCancellationRequested)
- {
- totalItem = (await LocalStorage.GetItemAsync>("data")).Count;
- items = new List(response); // an actual data for the current page
- }
- }
-}
\ No newline at end of file
diff --git a/Blazor/Blazor/Services/IDataService.cs b/Blazor/Blazor/Services/IDataService.cs
index cb9ae80..8093eff 100644
--- a/Blazor/Blazor/Services/IDataService.cs
+++ b/Blazor/Blazor/Services/IDataService.cs
@@ -25,5 +25,6 @@ namespace Blazor.Services
Task> ListAdmin(int currentPage, int pageSize);
Task Delete(int id);
+
}
}
diff --git a/Blazor/Blazor/Shared/NavMenu.razor b/Blazor/Blazor/Shared/NavMenu.razor
index 7e7e6f5..dcca51c 100644
--- a/Blazor/Blazor/Shared/NavMenu.razor
+++ b/Blazor/Blazor/Shared/NavMenu.razor
@@ -25,7 +25,7 @@
-
+
Questions