From bfc54acd1939c4fbd042f31b1a0c8c8bd6f3fa9c Mon Sep 17 00:00:00 2001 From: Kevin MONDEJAR Date: Mon, 27 Jan 2025 11:55:05 +0100 Subject: [PATCH] modification QuizServiceStub/DeleteUser/ModifQuote --- .../WF-WebAdmin/Pages/DeleteUser.razor | 27 +- .../WF-WebAdmin/Pages/DeleteUser.razor.cs | 2 +- .../WF-WebAdmin/Pages/ModifQuote.razor | 6 +- .../WF-WebAdmin/Pages/ValidQuiz.razor.cs | 8 +- WF-WebAdmin/WF-WebAdmin/Program.cs | 3 +- .../WF-WebAdmin/Service/IQuizService.cs | 2 + .../WF-WebAdmin/Service/IQuizServiceJson.cs | 17 - .../WF-WebAdmin/Service/IQuoteServiceJson.cs | 17 - .../WF-WebAdmin/Service/IUserServiceJson.cs | 17 - .../WF-WebAdmin/Service/QuizServiceStub.cs | 118 ++++--- .../WF-WebAdmin/wwwroot/fake_data_quiz.json | 112 +++---- .../WF-WebAdmin/wwwroot/fake_data_users.json | 312 +++++++++--------- 12 files changed, 298 insertions(+), 343 deletions(-) delete mode 100644 WF-WebAdmin/WF-WebAdmin/Service/IQuizServiceJson.cs delete mode 100644 WF-WebAdmin/WF-WebAdmin/Service/IQuoteServiceJson.cs delete mode 100644 WF-WebAdmin/WF-WebAdmin/Service/IUserServiceJson.cs diff --git a/WF-WebAdmin/WF-WebAdmin/Pages/DeleteUser.razor b/WF-WebAdmin/WF-WebAdmin/Pages/DeleteUser.razor index bf4a06b..c3d8913 100644 --- a/WF-WebAdmin/WF-WebAdmin/Pages/DeleteUser.razor +++ b/WF-WebAdmin/WF-WebAdmin/Pages/DeleteUser.razor @@ -12,6 +12,21 @@ else { + + + + + + + + +

Utilisateurs présents:

@foreach (var user in users) { @@ -19,11 +34,11 @@ else @if (user.IsAdmin) { -

Nom d'utilisateur : @user.Name (Administrateur)

+

Nom d'utilisateur : @user.Name (Administrateur)[id:@user.Id]

} else { -

Nom d'utilisateur : @user.Name

+

Nom d'utilisateur : @user.Name [id: @user.Id]

}

Email de l'utilisateur : @user.Email

@@ -54,14 +69,6 @@ else } - - - @* - - - *@ @if (showPopupDelete) diff --git a/WF-WebAdmin/WF-WebAdmin/Pages/DeleteUser.razor.cs b/WF-WebAdmin/WF-WebAdmin/Pages/DeleteUser.razor.cs index 44e8616..0ade62c 100644 --- a/WF-WebAdmin/WF-WebAdmin/Pages/DeleteUser.razor.cs +++ b/WF-WebAdmin/WF-WebAdmin/Pages/DeleteUser.razor.cs @@ -36,7 +36,7 @@ namespace WF_WebAdmin.Pages users = await userService.getAllUser(); } - private async Task OnReadData(DataGridReadDataEventArgs e) + private async Task OnReadData(DataGridReadDataEventArgs e) { if (e.CancellationToken.IsCancellationRequested) { diff --git a/WF-WebAdmin/WF-WebAdmin/Pages/ModifQuote.razor b/WF-WebAdmin/WF-WebAdmin/Pages/ModifQuote.razor index c86cdea..ca75a01 100644 --- a/WF-WebAdmin/WF-WebAdmin/Pages/ModifQuote.razor +++ b/WF-WebAdmin/WF-WebAdmin/Pages/ModifQuote.razor @@ -23,10 +23,10 @@ - - @* Editer*@ + *@ + Editer diff --git a/WF-WebAdmin/WF-WebAdmin/Pages/ValidQuiz.razor.cs b/WF-WebAdmin/WF-WebAdmin/Pages/ValidQuiz.razor.cs index 76b5d55..2c2beec 100644 --- a/WF-WebAdmin/WF-WebAdmin/Pages/ValidQuiz.razor.cs +++ b/WF-WebAdmin/WF-WebAdmin/Pages/ValidQuiz.razor.cs @@ -17,11 +17,11 @@ namespace WF_WebAdmin.Pages public NavigationManager NavigationManager { get; set; } [Inject] - public IQuizServiceJson QuizService { get; set; } + public IQuizService QuizService { get; set; } protected override async Task OnInitializedAsync() { - quizzes = await QuizService.getQuizzesToValidateJson(); + quizzes = await QuizService.getQuizzesToValidate(); } private void OnValidButton(Quiz quiz) @@ -37,7 +37,7 @@ namespace WF_WebAdmin.Pages newQuiz.IsValid = true; // Mis à jour de l'état du quiz - QuizService.updateQuizJson(quiz); + QuizService.updateQuiz(quiz); } private void OnRejectButton(Quiz quiz) @@ -49,7 +49,7 @@ namespace WF_WebAdmin.Pages { Console.WriteLine($"Quiz {quiz.Id} rejected!"); - QuizService.removeQuizJson(quiz.Id); + QuizService.removeQuiz(quiz.Id); } } } \ No newline at end of file diff --git a/WF-WebAdmin/WF-WebAdmin/Program.cs b/WF-WebAdmin/WF-WebAdmin/Program.cs index 8ce6fde..b32ffda 100644 --- a/WF-WebAdmin/WF-WebAdmin/Program.cs +++ b/WF-WebAdmin/WF-WebAdmin/Program.cs @@ -14,7 +14,8 @@ builder.Services.AddRazorPages(); builder.Services.AddServerSideBlazor(); builder.Services.AddSingleton(); builder.Services.AddScoped(); -builder.Services.AddScoped(); +builder.Services.AddScoped(); +builder.Services.AddScoped(); builder.Services.AddHttpClient(); builder.Services.AddScoped(); diff --git a/WF-WebAdmin/WF-WebAdmin/Service/IQuizService.cs b/WF-WebAdmin/WF-WebAdmin/Service/IQuizService.cs index bc7bb44..9c0dd95 100644 --- a/WF-WebAdmin/WF-WebAdmin/Service/IQuizService.cs +++ b/WF-WebAdmin/WF-WebAdmin/Service/IQuizService.cs @@ -18,6 +18,8 @@ namespace WF_WebAdmin.Service public Task getQuiz(int id); + public Task> getSommeQuiz(int nb, int page); + public Task getNbQuiz(); } } diff --git a/WF-WebAdmin/WF-WebAdmin/Service/IQuizServiceJson.cs b/WF-WebAdmin/WF-WebAdmin/Service/IQuizServiceJson.cs deleted file mode 100644 index 9d51396..0000000 --- a/WF-WebAdmin/WF-WebAdmin/Service/IQuizServiceJson.cs +++ /dev/null @@ -1,17 +0,0 @@ -using WF_WebAdmin.Model; - -namespace WF_WebAdmin.Service -{ - public interface IQuizServiceJson - { - public Task> getQuizzesJson(); - - public Task> getQuizzesToValidateJson(); - - public Task removeQuizJson(int id); - - public Task updateQuizJson(Quiz quiz); - - public Task saveQuizJson(List quiz); - } -} \ No newline at end of file diff --git a/WF-WebAdmin/WF-WebAdmin/Service/IQuoteServiceJson.cs b/WF-WebAdmin/WF-WebAdmin/Service/IQuoteServiceJson.cs deleted file mode 100644 index 0a93f33..0000000 --- a/WF-WebAdmin/WF-WebAdmin/Service/IQuoteServiceJson.cs +++ /dev/null @@ -1,17 +0,0 @@ -using WF_WebAdmin.Model; - -namespace WF_WebAdmin.Service -{ - public interface IQuoteServiceJson - { - public Task> GetQuoteJson(); - - public Task SaveQuoteJson(List users); - - public Task AddQuoteJson(User user); - - public Task DeleteQuoteJson(int id); - - public Task UpdateQuoteJson(User user); - } -} diff --git a/WF-WebAdmin/WF-WebAdmin/Service/IUserServiceJson.cs b/WF-WebAdmin/WF-WebAdmin/Service/IUserServiceJson.cs deleted file mode 100644 index f6c8383..0000000 --- a/WF-WebAdmin/WF-WebAdmin/Service/IUserServiceJson.cs +++ /dev/null @@ -1,17 +0,0 @@ -using WF_WebAdmin.Model; - -namespace WF_WebAdmin.Service -{ - public interface IUserServiceJson - { - public Task> GetUsersJson(); - - public Task SaveUsersJson(List users); - - public Task AddUserJson(User user); - - public Task DeleteUserJson(int id); - - public Task UpdateUserJson(User user); - } -} \ No newline at end of file diff --git a/WF-WebAdmin/WF-WebAdmin/Service/QuizServiceStub.cs b/WF-WebAdmin/WF-WebAdmin/Service/QuizServiceStub.cs index b34a439..d8a60df 100644 --- a/WF-WebAdmin/WF-WebAdmin/Service/QuizServiceStub.cs +++ b/WF-WebAdmin/WF-WebAdmin/Service/QuizServiceStub.cs @@ -3,43 +3,24 @@ using WF_WebAdmin.Model; namespace WF_WebAdmin.Service; -public class QuizServiceStub: IQuizServiceJson +public class QuizServiceStub: IQuizService { - private readonly string _jsonFilePath = - Path.Combine(Environment.CurrentDirectory, "wwwroot", "fake_data_quiz.json"); + private readonly string _jsonFilePath = Path.Combine(Environment.CurrentDirectory, "wwwroot", "fake_data_quiz.json"); - public async Task> getQuizzesJson() - { - if (!File.Exists(_jsonFilePath)) - { - Console.Out.WriteLine($"{_jsonFilePath} not found"); - return new List(); - } - - var json = await File.ReadAllTextAsync(_jsonFilePath); - return JsonSerializer.Deserialize>(json) ?? new List(); - } - - public async Task> getQuizzesToValidateJson() - { - var quizzes = await getQuizzesJson(); - return quizzes.Where(quiz => quiz.IsValid == false).ToList();; - } - - public async Task removeQuizJson(int id) - { - var data = await getQuizzesJson(); - var quiz = data.FirstOrDefault(q => q.Id == id); - if (quiz != null) - { - data.Remove(quiz); - await saveQuizJson(data); - } - } - - public async Task updateQuizJson(Quiz quiz) + public async Task saveQuizJson(List quizzes) { - var data = await getQuizzesJson(); + var json = JsonSerializer.Serialize(quizzes, new JsonSerializerOptions { WriteIndented = true }); + await File.WriteAllTextAsync(_jsonFilePath, json); + } + + public Task addQuiz(Quiz quiz) + { + throw new NotImplementedException(); + } + + public async Task updateQuiz(Quiz quiz) + { + var data = await getQuizzes(); var existingQuiz = data.FirstOrDefault(q => q.Id == quiz.Id); if (existingQuiz != null) { @@ -52,12 +33,67 @@ public class QuizServiceStub: IQuizServiceJson existingQuiz.IsValid = quiz.IsValid; existingQuiz.UserProposition = quiz.UserProposition; await saveQuizJson(data); + } + } + + public async Task removeQuiz(int id) + { + var data = await getQuizzes(); + var quiz = data.FirstOrDefault(q => q.Id == id); + if (quiz != null) + { + data.Remove(quiz); + await saveQuizJson(data); + } + } + + public Task validateQuiz(int id) + { + throw new NotImplementedException(); + } + + public async Task> getQuizzes() + { + if (!File.Exists(_jsonFilePath)) + { + Console.Out.WriteLine($"{_jsonFilePath} not found"); + return new List(); } - } - - public async Task saveQuizJson(List quizzes) - { - var json = JsonSerializer.Serialize(quizzes, new JsonSerializerOptions { WriteIndented = true }); - await File.WriteAllTextAsync(_jsonFilePath, json); - } + + var json = await File.ReadAllTextAsync(_jsonFilePath); + return JsonSerializer.Deserialize>(json) ?? new List(); + } + + public async Task> getQuizzesToValidate() + { + var quizzes = await getQuizzes(); + return quizzes.Where(quiz => quiz.IsValid == false).ToList(); + } + + public async Task getQuiz(int id) + { + var data = await getQuizzes(); + var q = data.FirstOrDefault(p => p.Id == id); + if (q != null) + { + return q; + } + return null; + } + + public async Task> getSommeQuiz(int nb, int page) + { + var data = await getQuizzes(); + if ((page - 1) * nb + nb > data.Count()) + { + return data.GetRange(data.Count() - nb, nb); + } + return data.GetRange((page - 1) * nb, nb); + } + + public async Task getNbQuiz() + { + var data = await getQuizzes(); + return data.Count; + } } diff --git a/WF-WebAdmin/WF-WebAdmin/wwwroot/fake_data_quiz.json b/WF-WebAdmin/WF-WebAdmin/wwwroot/fake_data_quiz.json index 0a91deb..1f90e95 100644 --- a/WF-WebAdmin/WF-WebAdmin/wwwroot/fake_data_quiz.json +++ b/WF-WebAdmin/WF-WebAdmin/wwwroot/fake_data_quiz.json @@ -1,68 +1,46 @@ -[ - { - "Id": 7, - "Question": "Lorem proident exercitation elit fugiat do amet aute labore consectetur pariatur consequat.", - "AnswerA": "eiusmod nulla", - "AnswerB": "eu Id", - "AnswerC": "proident tempor", - "AnswerD": "amet proident", - "CAnswer": "A", - "IsValid": false, - "UserProposition": "Mia Peterson" - }, - { - "Id": 8, - "Question": "Incididunt magna commodo laborum do incididunt commodo proident non cillum magna elit irure voluptate.", - "AnswerA": "laborum fugiat", - "AnswerB": "laboris est", - "AnswerC": "in ea", - "AnswerD": "duis ullamco", - "CAnswer": "A", - "IsValid": false, - "UserProposition": "Juliet Fox" - }, - { - "Id": 9, - "Question": "Qui labore fugiat sint Lorem ut minim in ex dolor.", - "AnswerA": "et deserunt", - "AnswerB": "labore sit", - "AnswerC": "in eiusmod", - "AnswerD": "amet incididunt", - "CAnswer": "C", - "IsValid": false, - "UserProposition": "Earnestine Poole" - }, - { - "Id": 10, - "Question": "Voluptate pariatur ipsum magna sint Lorem adipisicing.", - "AnswerA": "sint velit", - "AnswerB": "non culpa", - "AnswerC": "nisi ut", - "AnswerD": "excepteur labore", - "CAnswer": "B", - "IsValid": false, - "UserProposition": "Alexis Cross" - }, - { - "Id": 11, - "Question": "In labore sunt est cupidatat cillum.", - "AnswerA": "ut ad", - "AnswerB": "non deserunt", - "AnswerC": "do officia", - "AnswerD": "ut nostrud", - "CAnswer": "C", - "IsValid": false, - "UserProposition": "Brooks Martinez" - }, - { - "Id": 12, - "Question": "Irure occaecat sit laborum nulla ea dolore et aliqua sunt Lorem enim esse.", - "AnswerA": "excepteur occaecat", - "AnswerB": "pariatur in", - "AnswerC": "reprehenderit excepteur", - "AnswerD": "laborum adipisicing", - "CAnswer": "D", - "IsValid": false, - "UserProposition": "Shields Roth" - } +[ + { + "Id": 9, + "Question": "Qui labore fugiat sint Lorem ut minim in ex dolor.", + "AnswerA": "et deserunt", + "AnswerB": "labore sit", + "AnswerC": "in eiusmod", + "AnswerD": "amet incididunt", + "CAnswer": "C", + "IsValid": false, + "UserProposition": "Earnestine Poole" + }, + { + "Id": 10, + "Question": "Voluptate pariatur ipsum magna sint Lorem adipisicing.", + "AnswerA": "sint velit", + "AnswerB": "non culpa", + "AnswerC": "nisi ut", + "AnswerD": "excepteur labore", + "CAnswer": "B", + "IsValid": false, + "UserProposition": "Alexis Cross" + }, + { + "Id": 11, + "Question": "In labore sunt est cupidatat cillum.", + "AnswerA": "ut ad", + "AnswerB": "non deserunt", + "AnswerC": "do officia", + "AnswerD": "ut nostrud", + "CAnswer": "C", + "IsValid": false, + "UserProposition": "Brooks Martinez" + }, + { + "Id": 12, + "Question": "Irure occaecat sit laborum nulla ea dolore et aliqua sunt Lorem enim esse.", + "AnswerA": "excepteur occaecat", + "AnswerB": "pariatur in", + "AnswerC": "reprehenderit excepteur", + "AnswerD": "laborum adipisicing", + "CAnswer": "D", + "IsValid": false, + "UserProposition": "Shields Roth" + } ] \ No newline at end of file diff --git a/WF-WebAdmin/WF-WebAdmin/wwwroot/fake_data_users.json b/WF-WebAdmin/WF-WebAdmin/wwwroot/fake_data_users.json index 7b3f5b7..5b402a6 100644 --- a/WF-WebAdmin/WF-WebAdmin/wwwroot/fake_data_users.json +++ b/WF-WebAdmin/WF-WebAdmin/wwwroot/fake_data_users.json @@ -1,166 +1,148 @@ -[ - { - "Id": 1, - "Image": "https://assets.audiomack.com/merlijnmuziek/80c977f3a319cf2826af53c9faa7a46f787ba806ca3f783d23bbb7123942b697.jpeg?width=1000\u0026height=1000\u0026max=true", - "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 - } +[ + { + "Id": 1, + "Image": "https://assets.audiomack.com/merlijnmuziek/80c977f3a319cf2826af53c9faa7a46f787ba806ca3f783d23bbb7123942b697.jpeg?width=1000\u0026height=1000\u0026max=true", + "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": "test_n1", + "Email": "admin.joe@gmail.com", + "DateCreation": "2024-05-30T00:00:00", + "IsAdmin": false, + "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://th.bing.com/th/id/OIP.24T00MDK-RUhFnm1Do5PFwHaFj?w=229\u0026h=180\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": false, + "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 + } ] \ No newline at end of file