From b1022543211e4a346e0de0b1ccdfdc646f142951 Mon Sep 17 00:00:00 2001 From: Lucie Bedouret Date: Fri, 28 Oct 2022 12:01:06 +0200 Subject: [PATCH] ADD: continue the tutorial since DI IOC --- myBlazorApp/myBlazorApp/App.razor | 7 +- myBlazorApp/myBlazorApp/Models/ItemModel.cs | 40 ++++++ myBlazorApp/myBlazorApp/Pages/Add.razor | 69 ++++++++++ myBlazorApp/myBlazorApp/Pages/Add.razor.cs | 128 ++++++++++++++++++ .../myBlazorApp/Pages/BlazorRoute.razor | 4 + myBlazorApp/myBlazorApp/Pages/List.razor | 23 +++- myBlazorApp/myBlazorApp/Pages/List.razor.cs | 43 +++++- myBlazorApp/myBlazorApp/Program.cs | 5 +- myBlazorApp/myBlazorApp/myBlazorApp.csproj | 2 + .../wwwroot/images/harry potter.png | Bin 0 -> 24192 bytes .../wwwroot/images/hermione granger.png | Bin 0 -> 3033 bytes .../wwwroot/images/luna lovegood.png | Bin 0 -> 7338 bytes .../wwwroot/images/ron weasley.png | Bin 0 -> 12046 bytes 13 files changed, 311 insertions(+), 10 deletions(-) create mode 100644 myBlazorApp/myBlazorApp/Models/ItemModel.cs create mode 100644 myBlazorApp/myBlazorApp/Pages/Add.razor create mode 100644 myBlazorApp/myBlazorApp/Pages/Add.razor.cs create mode 100644 myBlazorApp/myBlazorApp/Pages/BlazorRoute.razor create mode 100644 myBlazorApp/myBlazorApp/wwwroot/images/harry potter.png create mode 100644 myBlazorApp/myBlazorApp/wwwroot/images/hermione granger.png create mode 100644 myBlazorApp/myBlazorApp/wwwroot/images/luna lovegood.png create mode 100644 myBlazorApp/myBlazorApp/wwwroot/images/ron weasley.png diff --git a/myBlazorApp/myBlazorApp/App.razor b/myBlazorApp/myBlazorApp/App.razor index 60f5744..d06cf24 100644 --- a/myBlazorApp/myBlazorApp/App.razor +++ b/myBlazorApp/myBlazorApp/App.razor @@ -1,13 +1,10 @@ - + - Not found - -

Sorry, there's nothing at this address.

-
+

Sorry, there's nothing at this address.

diff --git a/myBlazorApp/myBlazorApp/Models/ItemModel.cs b/myBlazorApp/myBlazorApp/Models/ItemModel.cs new file mode 100644 index 0000000..e15df61 --- /dev/null +++ b/myBlazorApp/myBlazorApp/Models/ItemModel.cs @@ -0,0 +1,40 @@ +using System; +using System.ComponentModel.DataAnnotations; + +namespace myBlazorApp.Models +{ + + public class ItemModel + { + public int Id { get; set; } + + [Required] + [StringLength(50, ErrorMessage = "The display name must not exceed 50 characters.")] + public string DisplayName { get; set; } + + [Required] + [StringLength(50, ErrorMessage = "The name must not exceed 50 characters.")] + [RegularExpression(@"^[a-z''-'\s]{1,40}$", ErrorMessage = "Only lowercase characters are accepted.")] + public string Name { get; set; } + + [Required] + [Range(1, 64)] + public int StackSize { get; set; } + + [Required] + [Range(1, 125)] + public int MaxDurability { get; set; } + + public List EnchantCategories { get; set; } + + public List RepairWith { get; set; } + + [Required] + [Range(typeof(bool), "true", "true", ErrorMessage = "You must agree to the terms.")] + public bool AcceptCondition { get; set; } + + [Required(ErrorMessage = "The image of the item is mandatory!")] + public byte[] ImageContent { get; set; } + } +} + diff --git a/myBlazorApp/myBlazorApp/Pages/Add.razor b/myBlazorApp/myBlazorApp/Pages/Add.razor new file mode 100644 index 0000000..64b1710 --- /dev/null +++ b/myBlazorApp/myBlazorApp/Pages/Add.razor @@ -0,0 +1,69 @@ +@page "/add" + +

Add

+ + + + + +

+ +

+

+ +

+

+ +

+

+ +

+

+ Enchant categories: +

+ @foreach (var item in enchantCategories) + { + + } +
+

+

+ Repair with: +

+ @foreach (var item in repairWith) + { + + } +
+

+

+ +

+

+ +

+ + +
\ No newline at end of file diff --git a/myBlazorApp/myBlazorApp/Pages/Add.razor.cs b/myBlazorApp/myBlazorApp/Pages/Add.razor.cs new file mode 100644 index 0000000..306432e --- /dev/null +++ b/myBlazorApp/myBlazorApp/Pages/Add.razor.cs @@ -0,0 +1,128 @@ +using System; +using Blazored.LocalStorage; +using Microsoft.AspNetCore.Components; +using Microsoft.AspNetCore.Components.Forms; +using myBlazorApp.Models; + +namespace myBlazorApp.Pages +{ + public partial class Add + { + [Inject] + public ILocalStorageService LocalStorage { get; set; } + + [Inject] + public IWebHostEnvironment WebHostEnvironment { get; set; } + + [Inject] + public NavigationManager NavigationManager { get; set; } + + /// + /// The default enchant categories. + /// + private List enchantCategories = new List() { "armor", "armor_head", "armor_chest", "weapon", "digger", "breakable", "vanishable" }; + + /// + /// The default repair with. + /// + private List repairWith = new List() { "oak_planks", "spruce_planks", "birch_planks", "jungle_planks", "acacia_planks", "dark_oak_planks", "crimson_planks", "warped_planks" }; + + /// + /// The current item model + /// + private ItemModel itemModel = new() + { + EnchantCategories = new List(), + RepairWith = new List() + }; + + private async void HandleValidSubmit() + { + // Get the current data + var currentData = await LocalStorage.GetItemAsync>("data"); + + // Simulate the Id + itemModel.Id = currentData.Max(s => s.Id) + 1; + + // Add the item to the current data + currentData.Add(new Item + { + Id = itemModel.Id, + DisplayName = itemModel.DisplayName, + Name = itemModel.Name, + RepairWith = itemModel.RepairWith, + EnchantCategories = itemModel.EnchantCategories, + MaxDurability = itemModel.MaxDurability, + StackSize = itemModel.StackSize, + CreatedDate = DateTime.Now + }); + + // Save the image + var imagePathInfo = new DirectoryInfo($"{WebHostEnvironment.WebRootPath}/images"); + + // Check if the folder "images" exist + if (!imagePathInfo.Exists) + { + imagePathInfo.Create(); + } + + // Determine the image name + var fileName = new FileInfo($"{imagePathInfo}/{itemModel.Name}.png"); + + // Write the file content + await File.WriteAllBytesAsync(fileName.FullName, itemModel.ImageContent); + + // Save the data + await LocalStorage.SetItemAsync("data", currentData); + + 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); + itemModel.ImageContent = memoryStream.ToArray(); + } + } + + private void OnEnchantCategoriesChange(string item, object checkedValue) + { + if ((bool)checkedValue) + { + if (!itemModel.EnchantCategories.Contains(item)) + { + itemModel.EnchantCategories.Add(item); + } + + return; + } + + if (itemModel.EnchantCategories.Contains(item)) + { + itemModel.EnchantCategories.Remove(item); + } + } + + private void OnRepairWithChange(string item, object checkedValue) + { + if ((bool)checkedValue) + { + if (!itemModel.RepairWith.Contains(item)) + { + itemModel.RepairWith.Add(item); + } + + return; + } + + if (itemModel.RepairWith.Contains(item)) + { + itemModel.RepairWith.Remove(item); + } + } + } +} + diff --git a/myBlazorApp/myBlazorApp/Pages/BlazorRoute.razor b/myBlazorApp/myBlazorApp/Pages/BlazorRoute.razor new file mode 100644 index 0000000..40307dd --- /dev/null +++ b/myBlazorApp/myBlazorApp/Pages/BlazorRoute.razor @@ -0,0 +1,4 @@ +@page "/BlazorRoute" +@page "/DifferentBlazorRoute" + +

Blazor routing

\ No newline at end of file diff --git a/myBlazorApp/myBlazorApp/Pages/List.razor b/myBlazorApp/myBlazorApp/Pages/List.razor index 0523745..a68a3ea 100644 --- a/myBlazorApp/myBlazorApp/Pages/List.razor +++ b/myBlazorApp/myBlazorApp/Pages/List.razor @@ -4,11 +4,32 @@

List

+
+ + Ajouter :) + +
+ + + + @if (File.Exists($"{WebHostEnvironment.WebRootPath}/images/{context.Name}.png")) + { + @context.DisplayName + } + else + { + @context.DisplayName + } + + diff --git a/myBlazorApp/myBlazorApp/Pages/List.razor.cs b/myBlazorApp/myBlazorApp/Pages/List.razor.cs index 519aff2..4f9f113 100644 --- a/myBlazorApp/myBlazorApp/Pages/List.razor.cs +++ b/myBlazorApp/myBlazorApp/Pages/List.razor.cs @@ -1,4 +1,6 @@ using System; +using Blazored.LocalStorage; +using Blazorise.DataGrid; using Microsoft.AspNetCore.Components; using myBlazorApp.Models; @@ -6,17 +8,52 @@ namespace myBlazorApp.Pages { public partial class List { - private Item[] items; + private List items; + + private int totalItem { get; set; } [Inject] public HttpClient Http { get; set; } + [Inject] + public ILocalStorageService LocalStorage { get; set; } + + + [Inject] + public IWebHostEnvironment WebHostEnvironment { get; set; } + [Inject] public NavigationManager NavigationManager { get; set; } - protected override async Task OnInitializedAsync() + protected override async Task OnAfterRenderAsync(bool firstRender) { - items = await Http.GetFromJsonAsync($"{NavigationManager.BaseUri}fake-data.json"); + if(!firstRender) + { + return; + } + + var currentData = await LocalStorage.GetItemAsync("data"); + + if (currentData == null) + { + var originalData = Http.GetFromJsonAsync($"{NavigationManager.BaseUri}fake-data.json").Result; + await LocalStorage.SetItemAsync("data", originalData); + } + } + + private async Task OnReadData(DataGridReadDataEventArgs e) + { + if (e.CancellationToken.IsCancellationRequested) + { + return; + } + 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); + } } } } diff --git a/myBlazorApp/myBlazorApp/Program.cs b/myBlazorApp/myBlazorApp/Program.cs index 4511297..200afef 100644 --- a/myBlazorApp/myBlazorApp/Program.cs +++ b/myBlazorApp/myBlazorApp/Program.cs @@ -1,8 +1,10 @@ -using Blazorise; +using Blazored.LocalStorage; +using Blazorise; using Blazorise.Bootstrap; using Blazorise.Icons.FontAwesome; using Microsoft.AspNetCore.Components; using Microsoft.AspNetCore.Components.Web; +using Blazored.LocalStorage; using myBlazorApp.Data; var builder = WebApplication.CreateBuilder(args); @@ -15,6 +17,7 @@ builder.Services.AddHttpClient(); builder.Services.AddBlazorise(); builder.Services.AddBootstrapProviders(); builder.Services.AddFontAwesomeIcons(); +builder.Services.AddBlazoredLocalStorage(); var app = builder.Build(); diff --git a/myBlazorApp/myBlazorApp/myBlazorApp.csproj b/myBlazorApp/myBlazorApp/myBlazorApp.csproj index f21e32f..b50b14b 100644 --- a/myBlazorApp/myBlazorApp/myBlazorApp.csproj +++ b/myBlazorApp/myBlazorApp/myBlazorApp.csproj @@ -12,6 +12,7 @@ + @@ -21,5 +22,6 @@ + diff --git a/myBlazorApp/myBlazorApp/wwwroot/images/harry potter.png b/myBlazorApp/myBlazorApp/wwwroot/images/harry potter.png new file mode 100644 index 0000000000000000000000000000000000000000..0bb8b4a3422ff8092acb5384dd66b09f08c12bb2 GIT binary patch literal 24192 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 e>w(?r1xO^$Ta6=~AKX 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 Q|G5L?rB$TrBus+;A5N`Ce*gdg literal 0 HcmV?d00001