From 29f4368548e1297c6c4c4dbbb4bed3329b1aa182 Mon Sep 17 00:00:00 2001 From: Jolys Enzo Date: Thu, 29 Dec 2022 00:53:04 +0100 Subject: [PATCH] avancement --- .../Controllers/CraftingController.cs | 63 ++++- Minecraft.Crafting.Api/Data/musique.json | 215 +++++++++--------- .../Factories/MusiqueFactory.cs | 36 +++ .../Minecraft.Crafting.Api.csproj | 4 +- Minecraft.Crafting.Api/Models/Musique.cs | 4 +- Minecraft.Crafting.Api/Models/MusiqueModel.cs | 46 ++++ ProjetBlazor/Factories/MusiqueFactory.cs | 3 +- ProjetBlazor/Modeles/Musique.cs | 4 +- ProjetBlazor/Modeles/MusiqueModel.cs | 13 +- ProjetBlazor/Pages/AddMusique.razor | 16 +- ProjetBlazor/Pages/AddMusique.razor.cs | 18 +- ProjetBlazor/Pages/Edit.razor | 56 +---- ProjetBlazor/Pages/Edit.razor.cs | 19 +- ProjetBlazor/Pages/MusiquesListe.razor | 9 +- ProjetBlazor/Pages/MusiquesListe.razor.cs | 13 ++ ProjetBlazor/Pages/Play.razor | 24 ++ ProjetBlazor/Pages/Play.razor.cs | 33 ++- ProjetBlazor/Pages/Play.razor.css | 10 + ProjetBlazor/Program.cs | 3 - ProjetBlazor/ProjetBlazor.csproj | 6 +- ProjetBlazor/Services/DataApiService.cs | 15 +- ProjetBlazor/Services/IDataService.cs | 2 + ProjetBlazor/Shared/NavMenu.razor | 7 +- 23 files changed, 405 insertions(+), 214 deletions(-) create mode 100644 Minecraft.Crafting.Api/Factories/MusiqueFactory.cs create mode 100644 Minecraft.Crafting.Api/Models/MusiqueModel.cs create mode 100644 ProjetBlazor/Pages/Play.razor.css diff --git a/Minecraft.Crafting.Api/Controllers/CraftingController.cs b/Minecraft.Crafting.Api/Controllers/CraftingController.cs index 3c41e5e..1b58637 100644 --- a/Minecraft.Crafting.Api/Controllers/CraftingController.cs +++ b/Minecraft.Crafting.Api/Controllers/CraftingController.cs @@ -1,8 +1,12 @@ namespace Minecraft.Crafting.Api.Controllers { using Microsoft.AspNetCore.Mvc; + using Microsoft.AspNetCore.Mvc.Razor.Infrastructure; using Minecraft.Crafting.Api.Models; + using ProjetBlazor.Factories; using ProjetBlazor.Modeles; + using System.Collections; + using System.Data; using System.Text.Json; using System.Text.Json.Serialization; @@ -19,16 +23,55 @@ namespace Minecraft.Crafting.Api.Controllers DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingDefault }; + [HttpPost] [Route("")] - public Task Add(Item item) + public Task Add(JsonElement json) { - var data = JsonSerializer.Deserialize>(System.IO.File.ReadAllText("Data/items.json"), _jsonSerializerOptions); + + MusiqueModel musiqueModel = JsonSerializer.Deserialize(json); + Musique musique = MusiqueFactory.Create(musiqueModel); + + var data = JsonSerializer.Deserialize>(System.IO.File.ReadAllText("Data/musique.json"), _jsonSerializerOptions); + + int tmp = data.LastOrDefault().id; + musique.id = tmp+1; + data.Add(musique); + + System.IO.File.WriteAllText("Data/musique.json", JsonSerializer.Serialize(data, _jsonSerializerOptions)); + + //Sauvegarder image et song + //image + string fileName = @$"{Environment.CurrentDirectory}/wwwroot/images/" + musique.imageName; + using (var fs = new FileStream(fileName, FileMode.Create, FileAccess.Write)) + { + byte[] img = musiqueModel.image; + fs.Write(img, 0, img.Length); + } + /* + using (var memoryStream = new MemoryStream()) + { + string fileName = @$"{Environment.CurrentDirectory}/../wwwroot/images/" + musique.imageName; - data.Add(item); + FileStream fs = new FileStream(fileName, FileMode.Create, FileAccess.Write, FileShare.None); - System.IO.File.WriteAllText("Data/items.json", JsonSerializer.Serialize(data, _jsonSerializerOptions)); + byte[] img = musiqueModel.image; + fs.Write(img, 0, img.Length); + fs.Close(); + }*/ + //song + using (var memoryStream = new MemoryStream()) + { + string fileName2 = @$"{Environment.CurrentDirectory}/wwwroot/musiques/" + musique.songName; + + FileStream fs = new FileStream(fileName2, FileMode.Create, FileAccess.Write, FileShare.None); + + byte[] song = musiqueModel.song; + + fs.Write(song, 0, song.Length); + fs.Close(); + } return Task.CompletedTask; } @@ -157,6 +200,15 @@ namespace Minecraft.Crafting.Api.Controllers return Task.FromResult(data.Skip((currentPage - 1) * pageSize).Take(pageSize).ToList()); } + [HttpGet] + [Route("listAll")] + public Task> ListAll() + { + var data = JsonSerializer.Deserialize>(System.IO.File.ReadAllText("Data/musique.json"), _jsonSerializerOptions); + + return Task.FromResult(data); + } + @@ -178,7 +230,8 @@ namespace Minecraft.Crafting.Api.Controllers itemOriginal.auteur = musique.auteur; itemOriginal.duree = musique.duree; itemOriginal.genre = musique.genre; - itemOriginal.image = musique.image; + itemOriginal.imageName = musique.imageName; + itemOriginal.songName= musique.songName; itemOriginal.date = musique.date; diff --git a/Minecraft.Crafting.Api/Data/musique.json b/Minecraft.Crafting.Api/Data/musique.json index 6e2b50c..2f99832 100644 --- a/Minecraft.Crafting.Api/Data/musique.json +++ b/Minecraft.Crafting.Api/Data/musique.json @@ -1,30 +1,13 @@ [ - { - "id": 1, - "titre": "Norali", - "auteur": "breakable", - "duree": 277, - "genre": "birch_planks", - "image": "default.png", - "date": "1963-07-08T00:00:00" - }, - { - "id": 2, - "titre": "Oulu", - "auteur": "digger", - "duree": 55, - "genre": "oak_planks", - "image": "default.png", - "date": "2008-07-07T00:00:00" - }, { "id": 3, "titre": "Brainquil", "auteur": "vanishable", "duree": 634, "genre": "jungle_planks", - "image": "default.png", - "date": "2009-07-19T00:00:00" + "date": "2009-07-19T00:00:00", + "imageName": "default.png", + "songName": "rick.mp3" }, { "id": 4, @@ -32,8 +15,9 @@ "auteur": "armor_chest", "duree": 2123, "genre": "warped_planks", - "image": "default.png", - "date": "1965-09-07T00:00:00" + "date": "1965-09-07T00:00:00", + "imageName": "default.png", + "songName": "rick.mp3" }, { "id": 5, @@ -41,8 +25,9 @@ "auteur": "armor", "duree": 1653, "genre": "acacia_planks", - "image": "default.png", - "date": "1989-01-11T00:00:00" + "date": "1989-01-11T00:00:00", + "imageName": "default.png", + "songName": "rick.mp3" }, { "id": 6, @@ -50,8 +35,9 @@ "auteur": "armor_chest", "duree": 2325, "genre": "warped_planks", - "image": "default.png", - "date": "1964-04-10T00:00:00" + "date": "1964-04-10T00:00:00", + "imageName": "default.png", + "songName": "rick.mp3" }, { "id": 7, @@ -59,8 +45,9 @@ "auteur": "armor_chest", "duree": 1984, "genre": "birch_planks", - "image": "default.png", - "date": "1971-06-12T00:00:00" + "date": "1971-06-12T00:00:00", + "imageName": "default.png", + "songName": "rick.mp3" }, { "id": 8, @@ -68,8 +55,9 @@ "auteur": "vanishable", "duree": 104, "genre": "jungle_planks", - "image": "default.png", - "date": "2015-05-23T00:00:00" + "date": "2015-05-23T00:00:00", + "imageName": "default.png", + "songName": "rick.mp3" }, { "id": 9, @@ -77,8 +65,9 @@ "auteur": "digger", "duree": 1390, "genre": "warped_planks", - "image": "default.png", - "date": "2010-05-21T00:00:00" + "date": "2010-05-21T00:00:00", + "imageName": "default.png", + "songName": "rick.mp3" }, { "id": 10, @@ -86,8 +75,9 @@ "auteur": "vanishable", "duree": 242, "genre": "oak_planks", - "image": "default.png", - "date": "1950-08-23T00:00:00" + "date": "1950-08-23T00:00:00", + "imageName": "default.png", + "songName": "rick.mp3" }, { "id": 11, @@ -95,8 +85,9 @@ "auteur": "breakable", "duree": 1601, "genre": "warped_planks", - "image": "default.png", - "date": "2020-11-19T00:00:00" + "date": "2020-11-19T00:00:00", + "imageName": "default.png", + "songName": "rick.mp3" }, { "id": 12, @@ -104,8 +95,9 @@ "auteur": "digger", "duree": 3443, "genre": "warped_planks", - "image": "default.png", - "date": "2003-09-03T00:00:00" + "date": "2003-09-03T00:00:00", + "imageName": "default.png", + "songName": "rick.mp3" }, { "id": 13, @@ -113,8 +105,9 @@ "auteur": "armor_head", "duree": 2904, "genre": "dark_oak_planks", - "image": "default.png", - "date": "1965-10-25T00:00:00" + "date": "1965-10-25T00:00:00", + "imageName": "default.png", + "songName": "rick.mp3" }, { "id": 14, @@ -122,8 +115,9 @@ "auteur": "digger", "duree": 502, "genre": "oak_planks", - "image": "default.png", - "date": "1971-08-26T00:00:00" + "date": "1971-08-26T00:00:00", + "imageName": "default.png", + "songName": "rick.mp3" }, { "id": 15, @@ -131,8 +125,9 @@ "auteur": "armor_head", "duree": 2695, "genre": "birch_planks", - "image": "default.png", - "date": "2000-06-22T00:00:00" + "date": "2000-06-22T00:00:00", + "imageName": "default.png", + "songName": "rick.mp3" }, { "id": 16, @@ -140,8 +135,9 @@ "auteur": "vanishable", "duree": 1013, "genre": "oak_planks", - "image": "default.png", - "date": "1963-12-15T00:00:00" + "date": "1963-12-15T00:00:00", + "imageName": "default.png", + "songName": "rick.mp3" }, { "id": 17, @@ -149,8 +145,9 @@ "auteur": "armor_chest", "duree": 1886, "genre": "birch_planks", - "image": "default.png", - "date": "1952-09-27T00:00:00" + "date": "1952-09-27T00:00:00", + "imageName": "default.png", + "songName": "rick.mp3" }, { "id": 18, @@ -158,8 +155,9 @@ "auteur": "armor_chest", "duree": 3047, "genre": "spruce_planks", - "image": "default.png", - "date": "1990-02-03T00:00:00" + "date": "1990-02-03T00:00:00", + "imageName": "default.png", + "songName": "rick.mp3" }, { "id": 19, @@ -167,8 +165,9 @@ "auteur": "armor_chest", "duree": 1957, "genre": "birch_planks", - "image": "default.png", - "date": "2005-03-19T00:00:00" + "date": "2005-03-19T00:00:00", + "imageName": "default.png", + "songName": "rick.mp3" }, { "id": 20, @@ -176,8 +175,9 @@ "auteur": "weapon", "duree": 287, "genre": "warped_planks", - "image": "default.png", - "date": "1977-03-11T00:00:00" + "date": "1977-03-11T00:00:00", + "imageName": "default.png", + "songName": "rick.mp3" }, { "id": 21, @@ -185,8 +185,9 @@ "auteur": "digger", "duree": 2819, "genre": "warped_planks", - "image": "default.png", - "date": "2003-02-22T00:00:00" + "date": "2003-02-22T00:00:00", + "imageName": "default.png", + "songName": "rick.mp3" }, { "id": 22, @@ -194,8 +195,9 @@ "auteur": "breakable", "duree": 114, "genre": "spruce_planks", - "image": "default.png", - "date": "1999-02-26T00:00:00" + "date": "1999-02-26T00:00:00", + "imageName": "default.png", + "songName": "rick.mp3" }, { "id": 23, @@ -203,8 +205,9 @@ "auteur": "breakable", "duree": 1322, "genre": "spruce_planks", - "image": "default.png", - "date": "1956-07-19T00:00:00" + "date": "1956-07-19T00:00:00", + "imageName": "default.png", + "songName": "rick.mp3" }, { "id": 24, @@ -212,8 +215,9 @@ "auteur": "weapon", "duree": 3341, "genre": "warped_planks", - "image": "default.png", - "date": "1994-11-28T00:00:00" + "date": "1994-11-28T00:00:00", + "imageName": "default.png", + "songName": "rick.mp3" }, { "id": 25, @@ -221,8 +225,9 @@ "auteur": "weapon", "duree": 2761, "genre": "acacia_planks", - "image": "default.png", - "date": "1981-07-20T00:00:00" + "date": "1981-07-20T00:00:00", + "imageName": "default.png", + "songName": "rick.mp3" }, { "id": 26, @@ -230,8 +235,9 @@ "auteur": "digger", "duree": 1522, "genre": "spruce_planks", - "image": "default.png", - "date": "1998-01-29T00:00:00" + "date": "1998-01-29T00:00:00", + "imageName": "default.png", + "songName": "rick.mp3" }, { "id": 27, @@ -239,8 +245,9 @@ "auteur": "armor", "duree": 1585, "genre": "birch_planks", - "image": "default.png", - "date": "2002-12-04T00:00:00" + "date": "2002-12-04T00:00:00", + "imageName": "default.png", + "songName": "rick.mp3" }, { "id": 28, @@ -248,8 +255,9 @@ "auteur": "armor", "duree": 241, "genre": "oak_planks", - "image": "default.png", - "date": "1957-01-09T00:00:00" + "date": "1957-01-09T00:00:00", + "imageName": "default.png", + "songName": "rick.mp3" }, { "id": 29, @@ -257,8 +265,9 @@ "auteur": "armor", "duree": 225, "genre": "acacia_planks", - "image": "default.png", - "date": "1959-07-06T00:00:00" + "date": "1959-07-06T00:00:00", + "imageName": "default.png", + "songName": "rick.mp3" }, { "id": 30, @@ -266,8 +275,9 @@ "auteur": "breakable", "duree": 629, "genre": "birch_planks", - "image": "default.png", - "date": "1965-04-15T00:00:00" + "date": "1965-04-15T00:00:00", + "imageName": "default.png", + "songName": "rick.mp3" }, { "id": 31, @@ -275,8 +285,9 @@ "auteur": "weapon", "duree": 689, "genre": "birch_planks", - "image": "default.png", - "date": "1996-11-16T00:00:00" + "date": "1996-11-16T00:00:00", + "imageName": "default.png", + "songName": "rick.mp3" }, { "id": 32, @@ -284,8 +295,9 @@ "auteur": "armor_chest", "duree": 2062, "genre": "crimson_planks", - "image": "default.png", - "date": "1979-04-30T00:00:00" + "date": "1979-04-30T00:00:00", + "imageName": "default.png", + "songName": "rick.mp3" }, { "id": 33, @@ -293,8 +305,9 @@ "auteur": "vanishable", "duree": 2447, "genre": "crimson_planks", - "image": "default.png", - "date": "2018-09-20T00:00:00" + "date": "2018-09-20T00:00:00", + "imageName": "default.png", + "songName": "rick.mp3" }, { "id": 34, @@ -302,8 +315,9 @@ "auteur": "armor", "duree": 1580, "genre": "jungle_planks", - "image": "default.png", - "date": "2021-04-27T00:00:00" + "date": "2021-04-27T00:00:00", + "imageName": "default.png", + "songName": "rick.mp3" }, { "id": 35, @@ -311,8 +325,9 @@ "auteur": "armor", "duree": 3491, "genre": "crimson_planks", - "image": "default.png", - "date": "1987-11-24T00:00:00" + "date": "1987-11-24T00:00:00", + "imageName": "default.png", + "songName": "rick.mp3" }, { "id": 36, @@ -320,34 +335,8 @@ "auteur": "armor", "duree": 3295, "genre": "jungle_planks", - "image": "default.png", - "date": "1989-12-24T00:00:00" - }, - { - "id": 37, - "titre": "Tribalog", - "auteur": "vanishable", - "duree": 1531, - "genre": "warped_planks", - "image": "default.png", - "date": "1995-06-17T00:00:00" - }, - { - "id": 38, - "titre": "Exozent", - "auteur": "armor_chest", - "duree": 7, - "genre": "crimson_planks", - "image": "default.png", - "date": "1972-06-30T00:00:00" - }, - { - "id": 39, - "titre": "Asimiline", - "auteur": "armor_chest", - "duree": 2048, - "genre": "dark_oak_planks", - "image": "default.png", - "date": "2006-11-22T00:00:00" + "date": "1989-12-24T00:00:00", + "imageName": "default.png", + "songName": "rick.mp3" } ] \ No newline at end of file diff --git a/Minecraft.Crafting.Api/Factories/MusiqueFactory.cs b/Minecraft.Crafting.Api/Factories/MusiqueFactory.cs new file mode 100644 index 0000000..f6c8e60 --- /dev/null +++ b/Minecraft.Crafting.Api/Factories/MusiqueFactory.cs @@ -0,0 +1,36 @@ +using ProjetBlazor.Modeles; + +namespace ProjetBlazor.Factories +{ + public static class MusiqueFactory + { + public static MusiqueModel ToModel(Musique musique, byte[] imageContent) + { + return new MusiqueModel + { + id = musique.id, + titre = musique.titre, + auteur = musique.auteur, + genre = musique.genre, + duree = musique.duree, + date = musique.date, + image = imageContent + }; + } + + public static Musique Create(MusiqueModel musique) + { + return new Musique + { + id = musique.id, + titre = musique.titre, + auteur = musique.auteur, + duree = musique.duree, + genre = musique.genre, + date = musique.date, + imageName = musique.imageName, + songName = musique.songName + }; + } + } +} diff --git a/Minecraft.Crafting.Api/Minecraft.Crafting.Api.csproj b/Minecraft.Crafting.Api/Minecraft.Crafting.Api.csproj index 3a715f6..0e30ab4 100644 --- a/Minecraft.Crafting.Api/Minecraft.Crafting.Api.csproj +++ b/Minecraft.Crafting.Api/Minecraft.Crafting.Api.csproj @@ -18,8 +18,8 @@ - - + + diff --git a/Minecraft.Crafting.Api/Models/Musique.cs b/Minecraft.Crafting.Api/Models/Musique.cs index 58dac32..b2b4a3e 100644 --- a/Minecraft.Crafting.Api/Models/Musique.cs +++ b/Minecraft.Crafting.Api/Models/Musique.cs @@ -7,8 +7,10 @@ public string auteur { get; set; } public int duree { get; set; } public string genre { get; set; } - public string image { get; set; } public DateTime date { get; set; } + public string imageName { get; set; } + + public string songName { get; set; } } } diff --git a/Minecraft.Crafting.Api/Models/MusiqueModel.cs b/Minecraft.Crafting.Api/Models/MusiqueModel.cs new file mode 100644 index 0000000..682b253 --- /dev/null +++ b/Minecraft.Crafting.Api/Models/MusiqueModel.cs @@ -0,0 +1,46 @@ +using System.ComponentModel.DataAnnotations; + + +namespace ProjetBlazor.Modeles +{ + public class MusiqueModel + { + + public int id { get; set; } + + [Required] + [StringLength(100, ErrorMessage = "Le titre affiché ne doit pas dépasser 100 caractères.")] + public string titre { get; set; } + + [Required] + [StringLength(50, ErrorMessage = "L'auteur affiché ne doit pas dépasser 50 caractères.")] + public string auteur { get; set; } + + [Required] + [Range(1, 3600)] + public int duree { get; set; } + + [Required] + [StringLength(100, ErrorMessage = "Le genre affiché ne doit pas dépasser 100 caractères.")] + public string genre { get; set; } + + [Required(ErrorMessage = "La date de la musique est obligatoire !!")] + public DateTime date { get; set; } + + + public byte[] image { get; set; } + + [Required] + [StringLength(50, ErrorMessage = "Le nom de la photo affiché ne doit pas dépasser 50 caractères.")] + public string imageName { get; set; } + + + public byte[] song { get; set; } + + [Required] + [StringLength(50, ErrorMessage = "Le nom du fichier de la musique ne doit pas dépasser 50 caractères.")] + public string songName { get; set; } + + + } +} diff --git a/ProjetBlazor/Factories/MusiqueFactory.cs b/ProjetBlazor/Factories/MusiqueFactory.cs index 5d8b831..ee96183 100644 --- a/ProjetBlazor/Factories/MusiqueFactory.cs +++ b/ProjetBlazor/Factories/MusiqueFactory.cs @@ -28,7 +28,8 @@ namespace ProjetBlazor.Factories duree = musique.duree, genre = musique.genre, date = musique.date, - image = musique.DisplayName + imageName = musique.imageName + }; } } diff --git a/ProjetBlazor/Modeles/Musique.cs b/ProjetBlazor/Modeles/Musique.cs index 58dac32..b2b4a3e 100644 --- a/ProjetBlazor/Modeles/Musique.cs +++ b/ProjetBlazor/Modeles/Musique.cs @@ -7,8 +7,10 @@ public string auteur { get; set; } public int duree { get; set; } public string genre { get; set; } - public string image { get; set; } public DateTime date { get; set; } + public string imageName { get; set; } + + public string songName { get; set; } } } diff --git a/ProjetBlazor/Modeles/MusiqueModel.cs b/ProjetBlazor/Modeles/MusiqueModel.cs index 051e872..f1bfcf3 100644 --- a/ProjetBlazor/Modeles/MusiqueModel.cs +++ b/ProjetBlazor/Modeles/MusiqueModel.cs @@ -27,11 +27,20 @@ namespace ProjetBlazor.Modeles [Required(ErrorMessage = "La date de la musique est obligatoire !!")] public DateTime date { get; set; } - [Required(ErrorMessage = "L'image de la musique est obligatoire !")] + public byte[] image { get; set; } [Required] [StringLength(50, ErrorMessage = "Le nom de la photo affiché ne doit pas dépasser 50 caractères.")] - public string DisplayName { get; set; } + public string imageName { get; set; } + + + public byte[] song { get; set; } + + [Required] + [StringLength(50, ErrorMessage = "Le nom du fichier de la musique ne doit pas dépasser 50 caractères.")] + public string songName { get; set; } + + } } diff --git a/ProjetBlazor/Pages/AddMusique.razor b/ProjetBlazor/Pages/AddMusique.razor index bc80c40..20afb70 100644 --- a/ProjetBlazor/Pages/AddMusique.razor +++ b/ProjetBlazor/Pages/AddMusique.razor @@ -46,8 +46,8 @@ + +

+ +

+ +

+ + diff --git a/ProjetBlazor/Pages/AddMusique.razor.cs b/ProjetBlazor/Pages/AddMusique.razor.cs index 74d52df..ceaf739 100644 --- a/ProjetBlazor/Pages/AddMusique.razor.cs +++ b/ProjetBlazor/Pages/AddMusique.razor.cs @@ -2,7 +2,7 @@ using Microsoft.AspNetCore.Components; using ProjetBlazor.Services; using ProjetBlazor.Modeles; -using Microsoft.AspNetCore.Mvc.ViewFeatures; +using System.IO; namespace ProjetBlazor.Pages { @@ -17,14 +17,17 @@ namespace ProjetBlazor.Pages [Inject] public NavigationManager NavigationManager { get; set; } + private async void HandleValidSubmit() { await DataService.Add(musiqueModel); - NavigationManager.NavigateTo("MusiquesListe"); + //NavigationManager.NavigateTo("MusiquesListe"); } + private async Task LoadImage(InputFileChangeEventArgs e) { + // Set the content of the image to the model using (var memoryStream = new MemoryStream()) { @@ -33,5 +36,14 @@ namespace ProjetBlazor.Pages } } - } + private async Task LoadSong(InputFileChangeEventArgs e) + { + // Set the content of the image to the model + using (var memoryStream = new MemoryStream()) + { + await e.File.OpenReadStream().CopyToAsync(memoryStream); + musiqueModel.image = memoryStream.ToArray(); + } + } } +} diff --git a/ProjetBlazor/Pages/Edit.razor b/ProjetBlazor/Pages/Edit.razor index 1c89cac..7f70fd7 100644 --- a/ProjetBlazor/Pages/Edit.razor +++ b/ProjetBlazor/Pages/Edit.razor @@ -1,58 +1,4 @@ -@page "/edit/{Id:int}" +@page "/edit/{id:int}"

Modification

- - - - -

- -

- -

- -

- -

- -

- -

- -

- -

- -

- - - -

- -

- - - -
\ No newline at end of file diff --git a/ProjetBlazor/Pages/Edit.razor.cs b/ProjetBlazor/Pages/Edit.razor.cs index 932289e..62dcc5e 100644 --- a/ProjetBlazor/Pages/Edit.razor.cs +++ b/ProjetBlazor/Pages/Edit.razor.cs @@ -8,8 +8,9 @@ namespace ProjetBlazor.Pages { public partial class Edit { + [Parameter] - public int Id { get; set; } + public int id { get; set; } private MusiqueModel musiqueModele = new MusiqueModel(); @@ -22,7 +23,7 @@ namespace ProjetBlazor.Pages [Inject] public IDataService DataService { get; set; } - + /* private async void HandleValidSubmit() { await DataService.Update(Id,musiqueModele); @@ -39,25 +40,25 @@ namespace ProjetBlazor.Pages musiqueModele.image = memoryStream.ToArray(); } } - + protected override async Task OnInitializedAsync() { var musique = await DataService.GetById(Id); - /* + var fileContent = await File.ReadAllBytesAsync($"{WebHostEnvironment.WebRootPath}/images/default.png"); if (File.Exists($"{WebHostEnvironment.WebRootPath}/images/{musiqueModele.titre}.png")) { fileContent = await File.ReadAllBytesAsync($"{WebHostEnvironment.WebRootPath}/images/{item.titre}.png"); - }*/ + } - var file = await File.ReadAllBytesAsync("https://localhost:7234/images/default.png"); - if (!musique.image.Equals("default.png")){ - file = await File.ReadAllBytesAsync("https://localhost:7234/images/{musique.image}"); + var file = await File.ReadAllBytesAsync(https://localhost:7234/images/default.png); + if (!musique.imageName.Equals("default.png")){ + file = await File.ReadAllBytesAsync(https://localhost:7234/images/{musique.image}); } // Set the model with the item musiqueModele = MusiqueFactory.ToModel(musique, file); - } + }*/ } } diff --git a/ProjetBlazor/Pages/MusiquesListe.razor b/ProjetBlazor/Pages/MusiquesListe.razor index a35fc2a..06dc11a 100644 --- a/ProjetBlazor/Pages/MusiquesListe.razor +++ b/ProjetBlazor/Pages/MusiquesListe.razor @@ -20,7 +20,7 @@ - + @@ -28,4 +28,11 @@ + + + + Editer + + + \ No newline at end of file diff --git a/ProjetBlazor/Pages/MusiquesListe.razor.cs b/ProjetBlazor/Pages/MusiquesListe.razor.cs index 6fcc66a..f671416 100644 --- a/ProjetBlazor/Pages/MusiquesListe.razor.cs +++ b/ProjetBlazor/Pages/MusiquesListe.razor.cs @@ -21,6 +21,10 @@ namespace ProjetBlazor.Pages [Inject] public IStringLocalizer Localizer { get; set; } + [Inject] + public NavigationManager NavigationManager { get; set; } + + private async Task OnReadData(DataGridReadDataEventArgs e) { if (e.CancellationToken.IsCancellationRequested) @@ -33,5 +37,14 @@ namespace ProjetBlazor.Pages totalItem = await DataService.Count(); } } + + private async Task OnDelete(int id) + { + await DataService.Delete(id); + + // Reload the page + NavigationManager.NavigateTo("MusiquesListe",true); + } + } } diff --git a/ProjetBlazor/Pages/Play.razor b/ProjetBlazor/Pages/Play.razor index b2d0e79..87a07d0 100644 --- a/ProjetBlazor/Pages/Play.razor +++ b/ProjetBlazor/Pages/Play.razor @@ -1,4 +1,5 @@ @page "/Play" +@using ProjetBlazor.Modeles;

Play

@@ -13,3 +14,26 @@ + +

Scoped CSS Example

+ +
+ @foreach (Musique image in listeMusique) + { + + } +
+ + diff --git a/ProjetBlazor/Pages/Play.razor.cs b/ProjetBlazor/Pages/Play.razor.cs index 5fabc3d..a54a736 100644 --- a/ProjetBlazor/Pages/Play.razor.cs +++ b/ProjetBlazor/Pages/Play.razor.cs @@ -1,8 +1,39 @@ - +using Blazorise.DataGrid; +using Microsoft.AspNetCore.Components; +using Microsoft.AspNetCore.Hosting; +using Microsoft.Extensions.Localization; +using ProjetBlazor.Modeles; +using ProjetBlazor.Services; namespace ProjetBlazor.Pages { public partial class Play { + private List listeMusique = new List(); + + [Inject] + public IDataService DataService { get; set; } + + [Inject] + public IStringLocalizer Localizer { get; set; } + + + private async Task OnReadData(DataGridReadDataEventArgs e) + { + if (e.CancellationToken.IsCancellationRequested) + { + return; + } + if (!e.CancellationToken.IsCancellationRequested) + { + listeMusique = await DataService.ListAll(); + } + } + + + protected override async Task OnInitializedAsync() + { + listeMusique = await DataService.ListAll(); + } } } diff --git a/ProjetBlazor/Pages/Play.razor.css b/ProjetBlazor/Pages/Play.razor.css new file mode 100644 index 0000000..508964f --- /dev/null +++ b/ProjetBlazor/Pages/Play.razor.css @@ -0,0 +1,10 @@ +h1 { + color: brown; + font-family: Tahoma, Geneva, Verdana, sans-serif; +} + + +.galleryimages{ + width: 20px; + height : 100px; +} \ No newline at end of file diff --git a/ProjetBlazor/Program.cs b/ProjetBlazor/Program.cs index 4068dea..8009e15 100644 --- a/ProjetBlazor/Program.cs +++ b/ProjetBlazor/Program.cs @@ -1,13 +1,10 @@ using Blazorise; using Blazorise.Bootstrap; using Blazorise.Icons.FontAwesome; -using Microsoft.AspNetCore.Components; -using Microsoft.AspNetCore.Components.Web; using Microsoft.AspNetCore.Localization; using Microsoft.Extensions.Options; using ProjetBlazor.Services; using System.Globalization; -using Microsoft.Extensions.Logging; var builder = WebApplication.CreateBuilder(args); diff --git a/ProjetBlazor/ProjetBlazor.csproj b/ProjetBlazor/ProjetBlazor.csproj index bae3c79..c20cee1 100644 --- a/ProjetBlazor/ProjetBlazor.csproj +++ b/ProjetBlazor/ProjetBlazor.csproj @@ -7,9 +7,9 @@ - - - + + + diff --git a/ProjetBlazor/Services/DataApiService.cs b/ProjetBlazor/Services/DataApiService.cs index 6d7270e..d3bc7a7 100644 --- a/ProjetBlazor/Services/DataApiService.cs +++ b/ProjetBlazor/Services/DataApiService.cs @@ -12,13 +12,10 @@ namespace ProjetBlazor.Services _http = http; } - public async Task Add(MusiqueModel musique) - { - // Get the item - var item = MusiqueFactory.Create(musique); - + public async Task Add(MusiqueModel musiqueModel) + { // Save the data - await _http.PostAsJsonAsync("https://localhost:7234/api/controleur/", musique); + await _http.PostAsJsonAsync("https://localhost:7234/api/Crafting",musiqueModel); } public async Task Count() @@ -31,6 +28,7 @@ namespace ProjetBlazor.Services await _http.DeleteAsync($"https://localhost:7234/api/Crafting/{id}"); } + public async Task GetById(int id) { return await _http.GetFromJsonAsync($"https://localhost:7234/api/Crafting/{id}"); @@ -41,6 +39,11 @@ namespace ProjetBlazor.Services return await _http.GetFromJsonAsync>($"https://localhost:7234/api/Crafting/?currentPage={currentPage}&pageSize={pageSize}"); } + public async Task> ListAll() + { + return await _http.GetFromJsonAsync>($"https://localhost:7234/api/Crafting/listAll/"); + } + public async Task Update(int id, MusiqueModel musique) { // Get the item diff --git a/ProjetBlazor/Services/IDataService.cs b/ProjetBlazor/Services/IDataService.cs index 8e9da8a..1f2f023 100644 --- a/ProjetBlazor/Services/IDataService.cs +++ b/ProjetBlazor/Services/IDataService.cs @@ -16,5 +16,7 @@ namespace ProjetBlazor.Services Task Count(); + Task> ListAll(); + } } diff --git a/ProjetBlazor/Shared/NavMenu.razor b/ProjetBlazor/Shared/NavMenu.razor index de84e37..bfe0ad9 100644 --- a/ProjetBlazor/Shared/NavMenu.razor +++ b/ProjetBlazor/Shared/NavMenu.razor @@ -19,14 +19,9 @@ Musiques Liste -