From 439857120077ed800f1faa3606a6c81fb6267a4b Mon Sep 17 00:00:00 2001 From: Antoine Jourdain Date: Fri, 16 Feb 2024 23:56:09 +0100 Subject: [PATCH] =?UTF-8?q?D=C3=A9blayage=20pour=20taff?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../adminBlazor/Factories/VocListFactory.cs | 12 +++++++----- .../adminBlazor/Models/VocabularyList.cs | 4 +++- .../adminBlazor/Models/VocabularyListModel.cs | 4 +++- .../adminBlazor/adminBlazor/Pages/EditVoc.razor | 8 -------- .../adminBlazor/Pages/EditVoc.razor.cs | 15 ++++++++++++++- .../adminBlazor/adminBlazor/Pages/_Host.cshtml | 1 + Project/adminBlazor/adminBlazor/wwwroot/voc.json | 14 ++++++++++++-- 7 files changed, 40 insertions(+), 18 deletions(-) diff --git a/Project/adminBlazor/adminBlazor/Factories/VocListFactory.cs b/Project/adminBlazor/adminBlazor/Factories/VocListFactory.cs index 2c36cd0..db120a7 100644 --- a/Project/adminBlazor/adminBlazor/Factories/VocListFactory.cs +++ b/Project/adminBlazor/adminBlazor/Factories/VocListFactory.cs @@ -9,14 +9,15 @@ namespace adminBlazor.Factories { public static class VocListFactory { - public static VocabularyListModel ToModel(VocabularyList voc) + public static VocabularyListModel ToModel(VocabularyList voc, byte[] imageContent) { return new VocabularyListModel { Id = voc.Id, Name = voc.Name, Image = voc.Image, - Aut = voc.Aut + Aut = voc.Aut, + ImageBase64 = string.IsNullOrWhiteSpace(voc.ImageBase64) ? Convert.ToBase64String(imageContent) : voc.ImageBase64 }; } @@ -27,7 +28,8 @@ namespace adminBlazor.Factories Id = voc.Id, Name = voc.Name, Image = voc.Image, - Aut = voc.Aut + Aut = voc.Aut, + ImageBase64 = voc.Image != null ? Convert.ToBase64String(voc.Image) : null }; } public static void Update(VocabularyList item, VocabularyListModel voc) @@ -35,8 +37,8 @@ namespace adminBlazor.Factories if (!string.IsNullOrEmpty(voc.Name)) item.Name = voc.Name; - if (!string.IsNullOrEmpty(voc.Image)) - item.Image = voc.Image; + if (voc.ImageBase64 != null && voc.Image != null) + item.ImageBase64 = Convert.ToBase64String(voc.Image); } } diff --git a/Project/adminBlazor/adminBlazor/Models/VocabularyList.cs b/Project/adminBlazor/adminBlazor/Models/VocabularyList.cs index 28d4de7..1146ef1 100644 --- a/Project/adminBlazor/adminBlazor/Models/VocabularyList.cs +++ b/Project/adminBlazor/adminBlazor/Models/VocabularyList.cs @@ -5,8 +5,10 @@ namespace adminBlazor.Models { public int Id { get; set; } public string Name { get; set; } - public string Image { get; set; } + public byte[] Image { get; set; } public int? Aut { get; set; } + + public string? ImageBase64 { get; set; } } } diff --git a/Project/adminBlazor/adminBlazor/Models/VocabularyListModel.cs b/Project/adminBlazor/adminBlazor/Models/VocabularyListModel.cs index 680e5e9..82ed127 100644 --- a/Project/adminBlazor/adminBlazor/Models/VocabularyListModel.cs +++ b/Project/adminBlazor/adminBlazor/Models/VocabularyListModel.cs @@ -10,9 +10,11 @@ namespace adminBlazor.Models public string Name { get; set; } - public string Image { get; set; } + public byte[] Image { get; set; } public int? Aut { get; set; } + + public string ImageBase64 { get; set; } } } diff --git a/Project/adminBlazor/adminBlazor/Pages/EditVoc.razor b/Project/adminBlazor/adminBlazor/Pages/EditVoc.razor index 323033d..24c887f 100644 --- a/Project/adminBlazor/adminBlazor/Pages/EditVoc.razor +++ b/Project/adminBlazor/adminBlazor/Pages/EditVoc.razor @@ -17,13 +17,5 @@

-

- -

- \ No newline at end of file diff --git a/Project/adminBlazor/adminBlazor/Pages/EditVoc.razor.cs b/Project/adminBlazor/adminBlazor/Pages/EditVoc.razor.cs index a46d330..ee6dfa0 100644 --- a/Project/adminBlazor/adminBlazor/Pages/EditVoc.razor.cs +++ b/Project/adminBlazor/adminBlazor/Pages/EditVoc.razor.cs @@ -3,6 +3,7 @@ using adminBlazor.Models; using adminBlazor.Services; using Blazored.LocalStorage; using Microsoft.AspNetCore.Components; +using Microsoft.AspNetCore.Components.Forms; using Microsoft.AspNetCore.Hosting; @@ -32,13 +33,25 @@ namespace adminBlazor.Pages NavigationManager.NavigateTo("list"); } + + private async Task LoadImage(InputFileChangeEventArgs e) + { + // Set the content of the image to the model + using (var memoryStream = new MemoryStream()) + { + await e.File.OpenReadStream().CopyToAsync(memoryStream); + voc.Image = memoryStream.ToArray(); + } + } protected async Task OnInitializedAsync() { var item = await VocListService.GetById(Id); - voc = VocListFactory.ToModel(item); + var fileContent = await File.ReadAllBytesAsync($"{WebHostEnvironment.WebRootPath}/images/default.jpeg"); + + voc = VocListFactory.ToModel(item,fileContent); } } } diff --git a/Project/adminBlazor/adminBlazor/Pages/_Host.cshtml b/Project/adminBlazor/adminBlazor/Pages/_Host.cshtml index 4b42af6..0544600 100644 --- a/Project/adminBlazor/adminBlazor/Pages/_Host.cshtml +++ b/Project/adminBlazor/adminBlazor/Pages/_Host.cshtml @@ -1,5 +1,6 @@ @page "/" @using Microsoft.AspNetCore.Components.Web +@using Microsoft.AspNetCore.Mvc.TagHelpers @namespace adminBlazor.Pages @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers diff --git a/Project/adminBlazor/adminBlazor/wwwroot/voc.json b/Project/adminBlazor/adminBlazor/wwwroot/voc.json index fb1e289..22145e7 100644 --- a/Project/adminBlazor/adminBlazor/wwwroot/voc.json +++ b/Project/adminBlazor/adminBlazor/wwwroot/voc.json @@ -3,12 +3,22 @@ "id": 1, "name": "Entreprise", "image": "link", - "aut": null + "aut": null, + "words" : [{ + "id": 1, + "firstWord" : "baguette", + "secondWord" : "pain" + }] }, { "id": 2, "name": "Animaux", "image": "link", - "aut" : 1 + "aut" : 1, + "words": [{ + "id": 1, + "firstWord" : "baguette", + "secondWord" : "pain" + }] } ] \ No newline at end of file