From 7389af802d2f62d577d2a17f201bde676d176b47 Mon Sep 17 00:00:00 2001 From: "patrick.brugiere" Date: Mon, 8 Jan 2024 17:25:29 +0100 Subject: [PATCH] fin du travail sur la modif --- .../adminBlazor/Factories/UserFactory.cs | 45 +++++++++++++------ .../adminBlazor/adminBlazor/Models/User.cs | 3 -- .../adminBlazor/Pages/EditUser.razor.cs | 12 +++-- .../adminBlazor/Services/DataLocalService.cs | 25 ++++------- .../adminBlazor/Services/IDataService.cs | 6 +-- 5 files changed, 52 insertions(+), 39 deletions(-) diff --git a/Project/adminBlazor/adminBlazor/Factories/UserFactory.cs b/Project/adminBlazor/adminBlazor/Factories/UserFactory.cs index 718b661..d75cce4 100644 --- a/Project/adminBlazor/adminBlazor/Factories/UserFactory.cs +++ b/Project/adminBlazor/adminBlazor/Factories/UserFactory.cs @@ -1,5 +1,6 @@ using adminBlazor.Models; using Blazorise; +using Blazorise.Extensions; using System.Data; using System.Text.RegularExpressions; using System.Xml.Linq; @@ -8,7 +9,7 @@ namespace adminBlazor.Factories { public static class UserFactory { - public static UserModel ToModel(UserModel user, byte[] imageContent) + public static UserModel ToModel(User user/* byte[] imageContent*/) { return new UserModel { @@ -41,19 +42,37 @@ namespace adminBlazor.Factories Roles = user.Roles }; } - - public static void Update(UserModel item, UserModel user) + public static void Update(User item, UserModel user) { - item.Id = user.Id; - item.Name = user.Name; - item.Surname = user.Surname; - item.Nickname = user.Nickname; - item.ExtraTime = user.ExtraTime; - item.Image = user.Image; - item.Group = user.Group; - item.Password = user.Password; - item.Email = user.Email; - item.Roles = user.Roles; + + + if (!string.IsNullOrEmpty(user.Name)) + item.Name = user.Name; + + if (!string.IsNullOrEmpty(user.Surname)) + item.Surname = user.Surname; + + if (!string.IsNullOrEmpty(user.Nickname)) + item.Nickname = user.Nickname; + + if (user.ExtraTime!=null) + item.ExtraTime = user.ExtraTime; + + if (!string.IsNullOrEmpty(user.Image)) + item.Image = user.Image; + + if (user.Group!=null) + item.Group = user.Group; + + if (!string.IsNullOrEmpty(user.Password)) + item.Password = user.Password; + + if (!string.IsNullOrEmpty(user.Email)) + item.Email = user.Email; + + if (user.Roles != null) + item.Roles = user.Roles; } + } } diff --git a/Project/adminBlazor/adminBlazor/Models/User.cs b/Project/adminBlazor/adminBlazor/Models/User.cs index dc075b3..d4ac880 100644 --- a/Project/adminBlazor/adminBlazor/Models/User.cs +++ b/Project/adminBlazor/adminBlazor/Models/User.cs @@ -12,10 +12,7 @@ namespace adminBlazor.Models public string Nickname { get; set; } public string Image { get; set; } public bool ExtraTime { get; set; } - - [Range(0, 100)] public int Group { get; set; } - public List Roles { get; set; } } } diff --git a/Project/adminBlazor/adminBlazor/Pages/EditUser.razor.cs b/Project/adminBlazor/adminBlazor/Pages/EditUser.razor.cs index caa9640..1435cd3 100644 --- a/Project/adminBlazor/adminBlazor/Pages/EditUser.razor.cs +++ b/Project/adminBlazor/adminBlazor/Pages/EditUser.razor.cs @@ -1,4 +1,5 @@ -using adminBlazor.Models; +using adminBlazor.Factories; +using adminBlazor.Models; using adminBlazor.Services; using Blazored.LocalStorage; using Microsoft.AspNetCore.Components; @@ -32,14 +33,17 @@ namespace adminBlazor.Pages /// /// The current item model /// - private Models.UserModel user = new Models.UserModel() + private Models.User user = new Models.User() { Roles = new List() }; private async void HandleValidSubmit() { - await DataService.Update(Id, user); + UserModel item = UserFactory.ToModel(user); + + await DataService.Update(Id,item); + NavigationManager.NavigateTo("list"); } @@ -56,7 +60,7 @@ namespace adminBlazor.Pages } // Set the model with the item - user = new UserModel + user = new User { Id = user.Id, Name = user.Name, diff --git a/Project/adminBlazor/adminBlazor/Services/DataLocalService.cs b/Project/adminBlazor/adminBlazor/Services/DataLocalService.cs index f88a5fc..766e303 100644 --- a/Project/adminBlazor/adminBlazor/Services/DataLocalService.cs +++ b/Project/adminBlazor/adminBlazor/Services/DataLocalService.cs @@ -30,7 +30,7 @@ namespace adminBlazor.Services _localStorage = localStorage; // Assure-toi que LocalStorage est initialisé correctement ici } - public Task Add(UserModel model) + public Task Add(User model) { throw new NotImplementedException(); } @@ -40,11 +40,11 @@ namespace adminBlazor.Services throw new NotImplementedException(); } - public async Task GetById(int id) + public async Task GetById(int id) { //var currentData = await LocalStorage.GetItemAsync("user.json"); - var currentData = await _localStorage.GetItemAsync>("data"); + var currentData = await _localStorage.GetItemAsync>("data"); var user = currentData.FirstOrDefault(w => w.Id == id); @@ -56,7 +56,7 @@ namespace adminBlazor.Services return user; } - public Task> List(int currentPage, int pageSize) + public Task> List(int currentPage, int pageSize) { throw new NotImplementedException(); } @@ -64,7 +64,7 @@ namespace adminBlazor.Services public async Task Update(int id, UserModel model) { // Get the current data - var currentData = await _localStorage.GetItemAsync>("data"); + var currentData = await _localStorage.GetItemAsync>("data"); var user = currentData.FirstOrDefault(w => w.Id == id); @@ -74,7 +74,8 @@ namespace adminBlazor.Services } // Save the image - // var imagePathInfo = new DirectoryInfo($"{WebHostEnvironment.WebRootPath}/images"); + // + var imagePathInfo = new DirectoryInfo($"{_webHostEnvironment.WebRootPath}/images"); // Check if the folder "images" exist // if (!imagePathInfo.Exists) @@ -94,22 +95,14 @@ namespace adminBlazor.Services } // Determine the image name - //var fileName = new FileInfo($"{imagePathInfo}/{model.Name}.png"); + var fileName = new FileInfo($"{imagePathInfo}/{model.Name}.png"); // Write the file content // await File.WriteAllBytesAsync(fileName.FullName, model.Image); UserFactory.Update(user, model); // Modify the content of the item - user.Nickname = model.Nickname; - user.Name = model.Name; - user.Surname = model.Surname; - user.Roles = model.Roles; - user.Group = model.Group; - user.Email = model.Email; - user.ExtraTime = model.ExtraTime; - user.Password = model.Password; - user.Image = model.Image; + // Save the data await _localStorage.SetItemAsync("data", currentData); diff --git a/Project/adminBlazor/adminBlazor/Services/IDataService.cs b/Project/adminBlazor/adminBlazor/Services/IDataService.cs index 2100be1..711b4cc 100644 --- a/Project/adminBlazor/adminBlazor/Services/IDataService.cs +++ b/Project/adminBlazor/adminBlazor/Services/IDataService.cs @@ -7,13 +7,13 @@ namespace adminBlazor.Services public interface IDataService { - Task Add(UserModel model); + Task Add(User model); Task Count(); - Task> List(int currentPage, int pageSize); + Task> List(int currentPage, int pageSize); - Task GetById(int id); + Task GetById(int id); Task Update(int id, UserModel model); }