From 85aeeb061c7aade5f11b850e8bd51ba5b9478ce6 Mon Sep 17 00:00:00 2001 From: tomivt Date: Wed, 22 Jan 2025 09:22:35 +0100 Subject: [PATCH] Complete setAdmin method --- .../WF-WebAdmin/Pages/DeleteUser.razor | 2 +- .../WF-WebAdmin/Pages/DeleteUser.razor.cs | 56 +-- .../WF-WebAdmin/Service/UserServiceStub.cs | 24 +- ...ke-dataUsers.json => fake_data_users.json} | 339 +++++++++--------- 4 files changed, 207 insertions(+), 214 deletions(-) rename WF-WebAdmin/WF-WebAdmin/wwwroot/{fake-dataUsers.json => fake_data_users.json} (91%) diff --git a/WF-WebAdmin/WF-WebAdmin/Pages/DeleteUser.razor b/WF-WebAdmin/WF-WebAdmin/Pages/DeleteUser.razor index 398b4c7..a15fe87 100644 --- a/WF-WebAdmin/WF-WebAdmin/Pages/DeleteUser.razor +++ b/WF-WebAdmin/WF-WebAdmin/Pages/DeleteUser.razor @@ -97,7 +97,7 @@ else

Êtes-vous sûr de vouloir changer le rôle de cet utilisateur ?

- +
diff --git a/WF-WebAdmin/WF-WebAdmin/Pages/DeleteUser.razor.cs b/WF-WebAdmin/WF-WebAdmin/Pages/DeleteUser.razor.cs index cfaecb3..44e8616 100644 --- a/WF-WebAdmin/WF-WebAdmin/Pages/DeleteUser.razor.cs +++ b/WF-WebAdmin/WF-WebAdmin/Pages/DeleteUser.razor.cs @@ -11,7 +11,7 @@ namespace WF_WebAdmin.Pages private bool showDeletePopup = false; private bool showModifyPopup = false; private User userToDelete = null; - private User selectedUser; + private User selectedUser; private bool showPopupDelete = false; private bool showPopupAdmin = false; private User userToAdmin = null; @@ -32,25 +32,25 @@ namespace WF_WebAdmin.Pages protected override async Task OnInitializedAsync() { - userService = new UserServiceStub($"fake-dataUsers.json"); - users = await userService.GetUsersJson(); + userService = new UserServiceStub(); + users = await userService.getAllUser(); } - private async Task OnReadData(DataGridReadDataEventArgs e) - { - if (e.CancellationToken.IsCancellationRequested) - { - return; - } - - - var response = await userService.getSomeUser(e.PageSize, e.Page); - - if (!e.CancellationToken.IsCancellationRequested) - { - totalItem = await userService.getNbUser(); - users = response.ToArray(); - } + private async Task OnReadData(DataGridReadDataEventArgs e) + { + if (e.CancellationToken.IsCancellationRequested) + { + return; + } + + + var response = await userService.getSomeUser(e.PageSize, e.Page); + + if (!e.CancellationToken.IsCancellationRequested) + { + totalItem = await userService.getNbUser(); + users = new List(response.ToArray()); + } } // ------- Popup remove user ------- @@ -71,16 +71,16 @@ namespace WF_WebAdmin.Pages { if (userToDelete != null) { - userService = new UserServiceStub($"fake-dataUsers.json"); - await userService.DeleteUserJson(userToDelete.Id); + userService = new UserServiceStub(); + await userService.removeUser(userToDelete); ClosePopup(); } } private async Task ModifyUser() { - userService = new UserServiceStub($"fake-dataUsers.json"); - await userService.UpdateUserJson(selectedUser); + userService = new UserServiceStub(); + await userService.updateUser(selectedUser); ClosePopup(); } @@ -102,17 +102,19 @@ namespace WF_WebAdmin.Pages - private async Task Admin() + private async Task setAdmin() { if (!userToAdmin.IsAdmin) - { + { userToAdmin.IsAdmin = true; + await userService.updateUser(userToAdmin); ClosePopup(); } - else - { + else + { userToAdmin.IsAdmin = false; - ClosePopup(); + await userService.updateUser(userToAdmin); + ClosePopup(); } } diff --git a/WF-WebAdmin/WF-WebAdmin/Service/UserServiceStub.cs b/WF-WebAdmin/WF-WebAdmin/Service/UserServiceStub.cs index 9dfd7fb..67cb03f 100644 --- a/WF-WebAdmin/WF-WebAdmin/Service/UserServiceStub.cs +++ b/WF-WebAdmin/WF-WebAdmin/Service/UserServiceStub.cs @@ -1,17 +1,17 @@ -using System.Text.Json; -using WF_WebAdmin.Model; - -namespace WF_WebAdmin.Service; - -public class UserServiceStub : IUserService -{ - private readonly string _jsonFilePath = Path.Combine(Environment.CurrentDirectory, "wwwroot", "fake-dataUsers.json"); +using System.Text.Json; +using WF_WebAdmin.Model; +namespace WF_WebAdmin.Service; - public async Task saveUsersJson(List users) - { - var json = JsonSerializer.Serialize(users, new JsonSerializerOptions { WriteIndented = true }); - await File.WriteAllTextAsync(_jsonFilePath, json); +public class UserServiceStub : IUserService +{ + private readonly string _jsonFilePath = Path.Combine(Environment.CurrentDirectory, "wwwroot", "fake_data_users.json"); + + + public async Task saveUsersJson(List users) + { + var json = JsonSerializer.Serialize(users, new JsonSerializerOptions { WriteIndented = true }); + await File.WriteAllTextAsync(_jsonFilePath, json); } public async Task removeUser(User user) diff --git a/WF-WebAdmin/WF-WebAdmin/wwwroot/fake-dataUsers.json b/WF-WebAdmin/WF-WebAdmin/wwwroot/fake_data_users.json similarity index 91% rename from WF-WebAdmin/WF-WebAdmin/wwwroot/fake-dataUsers.json rename to WF-WebAdmin/WF-WebAdmin/wwwroot/fake_data_users.json index a6c7f98..5730ccb 100644 --- a/WF-WebAdmin/WF-WebAdmin/wwwroot/fake-dataUsers.json +++ b/WF-WebAdmin/WF-WebAdmin/wwwroot/fake_data_users.json @@ -1,175 +1,166 @@ -[ - { - "Id": 1, - "Image": "https://tse4.mm.bing.net/th/id/OIP.fc5TQflh0cbxB1GUeOdk6gHaK8?w=123\u0026h=180\u0026c=7\u0026r=0\u0026o=5\u0026pid=1.7", - "Name": "admin", - "Email": "admin@gmail.com", - "DateCreation": "2024-12-12T00:00:00", - "IsAdmin": true, - "Comments": [ - { - "Text": "Commentaire 1", - "DateCreation": "2024-12-12T00:00:00" - }, - { - "Text": "Commentaire 2", - "DateCreation": "2024-11-12T00:00:00" - } - ] - }, - { - "Id": 2, - "Image": "https://tse2.mm.bing.net/th/id/OIP.MMpXBB5RDRYQm05FJmevGAHaKl?w=137\u0026h=195\u0026c=7\u0026r=0\u0026o=5\u0026pid=1.7", - "Name": "exploit2", - "Email": "exploit@gmail.com", - "DateCreation": "2024-11-12T00:00:00", - "IsAdmin": true, - "Comments": null - }, - { - "Id": 3, - "Image": "https://tse4.mm.bing.net/th/id/OIP.XNQPKwc1OUfvnSO9MsxDYgHaE7?w=202\u0026h=180\u0026c=7\u0026r=0\u0026o=5\u0026pid=1.7", - "Name": "testeur", - "Email": "testeur@gmail.com", - "DateCreation": "2024-08-02T00:00:00", - "IsAdmin": false, - "Comments": [ - { - "Text": "Premier test effectu\u00E9, tout semble OK.", - "DateCreation": "2024-08-02T00:00:00" - } - ] - }, - { - "Id": 4, - "Image": "https://tse2.mm.bing.net/th/id/OIP.MMpXBB5RDRYQm05FJmevGAHaKl?w=137\u0026h=195\u0026c=7\u0026r=0\u0026o=5\u0026pid=1.7", - "Name": "dev", - "Email": "dev@gmail.com", - "DateCreation": "2024-10-10T00:00:00", - "IsAdmin": false, - "Comments": null - }, - { - "Id": 5, - "Image": "https://tse2.mm.bing.net/th/id/OIP.MMpXBB5RDRYQm05FJmevGAHaKl?w=137\u0026h=195\u0026c=7\u0026r=0\u0026o=5\u0026pid=1.7", - "Name": "jean_doe", - "Email": "jean.doe@gmail.com", - "DateCreation": "2024-06-25T00:00:00", - "IsAdmin": false, - "Comments": [ - { - "Text": "Utilisateur tr\u00E8s actif, peut \u00EAtre un peu trop intrusif.", - "DateCreation": "2024-06-25T00:00:00" - } - ] - }, - { - "Id": 6, - "Image": "https://tse2.mm.bing.net/th/id/OIP.MMpXBB5RDRYQm05FJmevGAHaKl?w=137\u0026h=195\u0026c=7\u0026r=0\u0026o=5\u0026pid=1.7", - "Name": "jane_smith", - "Email": "jane.smith@gmail.com", - "DateCreation": "2024-07-15T00:00:00", - "IsAdmin": false, - "Comments": null - }, - { - "Id": 7, - "Image": "https://tse2.mm.bing.net/th/id/OIP.MMpXBB5RDRYQm05FJmevGAHaKl?w=137\u0026h=195\u0026c=7\u0026r=0\u0026o=5\u0026pid=1.7", - "Name": "admin_joe", - "Email": "admin.joe@gmail.com", - "DateCreation": "2024-05-30T00:00:00", - "IsAdmin": true, - "Comments": null - }, - { - "Id": 8, - "Image": "https://tse2.mm.bing.net/th/id/OIP.MMpXBB5RDRYQm05FJmevGAHaKl?w=137\u0026h=195\u0026c=7\u0026r=0\u0026o=5\u0026pid=1.7", - "Name": "dev_anna", - "Email": "dev.anna@gmail.com", - "DateCreation": "2024-09-05T00:00:00", - "IsAdmin": false, - "Comments": null - }, - { - "Id": 9, - "Image": "https://tse2.mm.bing.net/th/id/OIP.MMpXBB5RDRYQm05FJmevGAHaKl?w=137\u0026h=195\u0026c=7\u0026r=0\u0026o=5\u0026pid=1.7", - "Name": "support_mark", - "Email": "support.mark@gmail.com", - "DateCreation": "2024-11-20T00:00:00", - "IsAdmin": false, - "Comments": [ - { - "Text": "Support rapide et efficace, mais manquant un peu de d\u00E9tails.", - "DateCreation": "2024-11-20T00:00:00" - } - ] - }, - { - "Id": 10, - "Image": "https://tse2.mm.bing.net/th/id/OIP.MMpXBB5RDRYQm05FJmevGAHaKl?w=137\u0026h=195\u0026c=7\u0026r=0\u0026o=5\u0026pid=1.7", - "Name": "dev_susan", - "Email": "dev.susan@gmail.com", - "DateCreation": "2024-08-12T00:00:00", - "IsAdmin": false, - "Comments": null - }, - { - "Id": 11, - "Image": "https://tse2.mm.bing.net/th/id/OIP.MMpXBB5RDRYQm05FJmevGAHaKl?w=137\u0026h=195\u0026c=7\u0026r=0\u0026o=5\u0026pid=1.7", - "Name": "designer_steve", - "Email": "designer.steve@gmail.com", - "DateCreation": "2024-07-01T00:00:00", - "IsAdmin": false, - "Comments": [ - { - "Text": "Le design doit \u00EAtre retravaill\u00E9 pour plus de clart\u00E9.", - "DateCreation": "2024-07-01T00:00:00" - } - ] - }, - { - "Id": 12, - "Image": "https://tse2.mm.bing.net/th/id/OIP.MMpXBB5RDRYQm05FJmevGAHaKl?w=137\u0026h=195\u0026c=7\u0026r=0\u0026o=5\u0026pid=1.7", - "Name": "admin_lucas", - "Email": "admin.lucas@gmail.com", - "DateCreation": "2024-09-22T00:00:00", - "IsAdmin": true, - "Comments": null - }, - { - "Id": 13, - "Image": "https://tse2.mm.bing.net/th/id/OIP.MMpXBB5RDRYQm05FJmevGAHaKl?w=137\u0026h=195\u0026c=7\u0026r=0\u0026o=5\u0026pid=1.7", - "Name": "manager_anna", - "Email": "manager.anna@gmail.com", - "DateCreation": "2024-05-01T00:00:00", - "IsAdmin": false, - "Comments": null - }, - { - "Id": 14, - "Image": "https://tse2.mm.bing.net/th/id/OIP.MMpXBB5RDRYQm05FJmevGAHaKl?w=137\u0026h=195\u0026c=7\u0026r=0\u0026o=5\u0026pid=1.7", - "Name": "developer_mike", - "Email": "developer.mike@gmail.com", - "DateCreation": "2024-11-02T00:00:00", - "IsAdmin": false, - "Comments": null - }, - { - "Id": 15, - "Image": "https://tse2.mm.bing.net/th/id/OIP.MMpXBB5RDRYQm05FJmevGAHaKl?w=137\u0026h=195\u0026c=7\u0026r=0\u0026o=5\u0026pid=1.7", - "Name": "test_user_01", - "Email": "test.user01@gmail.com", - "DateCreation": "2024-06-10T00:00:00", - "IsAdmin": false, - "Comments": null - }, - { - "Id": 16, - "Image": "https://tse2.mm.bing.net/th/id/OIP.MMpXBB5RDRYQm05FJmevGAHaKl?w=137\u0026h=195\u0026c=7\u0026r=0\u0026o=5\u0026pid=1.7", - "Name": "admin_kate", - "Email": "admin.kate@gmail.com", - "DateCreation": "2024-04-16T00:00:00", - "IsAdmin": true, - "Comments": null - } +[ + { + "Id": 1, + "Image": "https://tse4.mm.bing.net/th/id/OIP.fc5TQflh0cbxB1GUeOdk6gHaK8?w=123\u0026h=180\u0026c=7\u0026r=0\u0026o=5\u0026pid=1.7", + "Name": "admin", + "Email": "adminop@gmail.com", + "DateCreation": "2024-12-12T00:00:00", + "IsAdmin": true, + "Comments": [ + { + "Text": "Commentaire 1", + "DateCreation": "2024-12-12T00:00:00" + }, + { + "Text": "Commentaire 2", + "DateCreation": "2024-11-12T00:00:00" + } + ] + }, + { + "Id": 3, + "Image": "https://tse4.mm.bing.net/th/id/OIP.XNQPKwc1OUfvnSO9MsxDYgHaE7?w=202\u0026h=180\u0026c=7\u0026r=0\u0026o=5\u0026pid=1.7", + "Name": "testeur", + "Email": "testeur@gmail.com", + "DateCreation": "2024-08-02T00:00:00", + "IsAdmin": false, + "Comments": [ + { + "Text": "Premier test effectu\u00E9, tout semble OK.", + "DateCreation": "2024-08-02T00:00:00" + } + ] + }, + { + "Id": 4, + "Image": "https://tse2.mm.bing.net/th/id/OIP.MMpXBB5RDRYQm05FJmevGAHaKl?w=137\u0026h=195\u0026c=7\u0026r=0\u0026o=5\u0026pid=1.7", + "Name": "dev", + "Email": "dev@gmail.com", + "DateCreation": "2024-10-10T00:00:00", + "IsAdmin": false, + "Comments": null + }, + { + "Id": 5, + "Image": "https://tse2.mm.bing.net/th/id/OIP.MMpXBB5RDRYQm05FJmevGAHaKl?w=137\u0026h=195\u0026c=7\u0026r=0\u0026o=5\u0026pid=1.7", + "Name": "jean_doe", + "Email": "jean.doe@gmail.com", + "DateCreation": "2024-06-25T00:00:00", + "IsAdmin": false, + "Comments": [ + { + "Text": "Utilisateur tr\u00E8s actif, peut \u00EAtre un peu trop intrusif.", + "DateCreation": "2024-06-25T00:00:00" + } + ] + }, + { + "Id": 6, + "Image": "https://tse2.mm.bing.net/th/id/OIP.MMpXBB5RDRYQm05FJmevGAHaKl?w=137\u0026h=195\u0026c=7\u0026r=0\u0026o=5\u0026pid=1.7", + "Name": "jane_smith", + "Email": "jane.smith@gmail.com", + "DateCreation": "2024-07-15T00:00:00", + "IsAdmin": false, + "Comments": null + }, + { + "Id": 7, + "Image": "https://tse2.mm.bing.net/th/id/OIP.MMpXBB5RDRYQm05FJmevGAHaKl?w=137\u0026h=195\u0026c=7\u0026r=0\u0026o=5\u0026pid=1.7", + "Name": "admin_joe", + "Email": "admin.joe@gmail.com", + "DateCreation": "2024-05-30T00:00:00", + "IsAdmin": true, + "Comments": null + }, + { + "Id": 8, + "Image": "https://tse2.mm.bing.net/th/id/OIP.MMpXBB5RDRYQm05FJmevGAHaKl?w=137\u0026h=195\u0026c=7\u0026r=0\u0026o=5\u0026pid=1.7", + "Name": "dev_anna", + "Email": "dev.anna@gmail.com", + "DateCreation": "2024-09-05T00:00:00", + "IsAdmin": false, + "Comments": null + }, + { + "Id": 9, + "Image": "https://tse2.mm.bing.net/th/id/OIP.MMpXBB5RDRYQm05FJmevGAHaKl?w=137\u0026h=195\u0026c=7\u0026r=0\u0026o=5\u0026pid=1.7", + "Name": "support_mark", + "Email": "support.mark@gmail.com", + "DateCreation": "2024-11-20T00:00:00", + "IsAdmin": false, + "Comments": [ + { + "Text": "Support rapide et efficace, mais manquant un peu de d\u00E9tails.", + "DateCreation": "2024-11-20T00:00:00" + } + ] + }, + { + "Id": 10, + "Image": "https://tse2.mm.bing.net/th/id/OIP.MMpXBB5RDRYQm05FJmevGAHaKl?w=137\u0026h=195\u0026c=7\u0026r=0\u0026o=5\u0026pid=1.7", + "Name": "dev_susan", + "Email": "dev.susan@gmail.com", + "DateCreation": "2024-08-12T00:00:00", + "IsAdmin": false, + "Comments": null + }, + { + "Id": 11, + "Image": "https://tse2.mm.bing.net/th/id/OIP.MMpXBB5RDRYQm05FJmevGAHaKl?w=137\u0026h=195\u0026c=7\u0026r=0\u0026o=5\u0026pid=1.7", + "Name": "designer_steve", + "Email": "designer.steve@gmail.com", + "DateCreation": "2024-07-01T00:00:00", + "IsAdmin": false, + "Comments": [ + { + "Text": "Le design doit \u00EAtre retravaill\u00E9 pour plus de clart\u00E9.", + "DateCreation": "2024-07-01T00:00:00" + } + ] + }, + { + "Id": 12, + "Image": "https://tse2.mm.bing.net/th/id/OIP.MMpXBB5RDRYQm05FJmevGAHaKl?w=137\u0026h=195\u0026c=7\u0026r=0\u0026o=5\u0026pid=1.7", + "Name": "admin_lucas", + "Email": "admin.lucas@gmail.com", + "DateCreation": "2024-09-22T00:00:00", + "IsAdmin": true, + "Comments": null + }, + { + "Id": 13, + "Image": "https://tse2.mm.bing.net/th/id/OIP.MMpXBB5RDRYQm05FJmevGAHaKl?w=137\u0026h=195\u0026c=7\u0026r=0\u0026o=5\u0026pid=1.7", + "Name": "manager_anna", + "Email": "manager.anna@gmail.com", + "DateCreation": "2024-05-01T00:00:00", + "IsAdmin": false, + "Comments": null + }, + { + "Id": 14, + "Image": "https://tse2.mm.bing.net/th/id/OIP.MMpXBB5RDRYQm05FJmevGAHaKl?w=137\u0026h=195\u0026c=7\u0026r=0\u0026o=5\u0026pid=1.7", + "Name": "developer_mike", + "Email": "developer.mike@gmail.com", + "DateCreation": "2024-11-02T00:00:00", + "IsAdmin": false, + "Comments": null + }, + { + "Id": 15, + "Image": "https://tse2.mm.bing.net/th/id/OIP.MMpXBB5RDRYQm05FJmevGAHaKl?w=137\u0026h=195\u0026c=7\u0026r=0\u0026o=5\u0026pid=1.7", + "Name": "test_user_01", + "Email": "test.user01@gmail.com", + "DateCreation": "2024-06-10T00:00:00", + "IsAdmin": false, + "Comments": null + }, + { + "Id": 16, + "Image": "https://tse2.mm.bing.net/th/id/OIP.MMpXBB5RDRYQm05FJmevGAHaKl?w=137\u0026h=195\u0026c=7\u0026r=0\u0026o=5\u0026pid=1.7", + "Name": "admin_kate", + "Email": "admin.kate@gmail.com", + "DateCreation": "2024-04-16T00:00:00", + "IsAdmin": true, + "Comments": null + } ] \ No newline at end of file