From 023fad9b5e038c25cbc81091cbf6596232ea57b7 Mon Sep 17 00:00:00 2001 From: majean5 Date: Wed, 7 Dec 2022 10:16:42 +0100 Subject: [PATCH] Inventaire --- .../BlazorApp/Components/AvailableItem.razor | 32 ++++++ .../Components/AvailableItem.razor.cs | 25 +++++ .../Components/AvailableItem.razor.css | 18 ++++ BlazorApp/BlazorApp/Pages/Index.razor | 2 +- BlazorApp/BlazorApp/Pages/Index.razor.cs | 3 +- BlazorApp/BlazorApp/Pages/Inventory.razor | 101 ++++++++++++------ BlazorApp/BlazorApp/Pages/Inventory.razor.cs | 27 ++++- BlazorApp/BlazorApp/Pages/Inventory.razor.css | 29 ++++- BlazorApp/BlazorApp/Pages/List.razor.cs | 2 +- .../BlazorApp/Services/DataApiService.cs | 16 ++- BlazorApp/BlazorApp/Services/IDataService.cs | 2 +- 11 files changed, 213 insertions(+), 44 deletions(-) create mode 100644 BlazorApp/BlazorApp/Components/AvailableItem.razor create mode 100644 BlazorApp/BlazorApp/Components/AvailableItem.razor.cs create mode 100644 BlazorApp/BlazorApp/Components/AvailableItem.razor.css diff --git a/BlazorApp/BlazorApp/Components/AvailableItem.razor b/BlazorApp/BlazorApp/Components/AvailableItem.razor new file mode 100644 index 0000000..a9b6b82 --- /dev/null +++ b/BlazorApp/BlazorApp/Components/AvailableItem.razor @@ -0,0 +1,32 @@ + +
+
+
+ +
Available items:
+
+
+ + @foreach (var item in Items) + { + + + + + @item.DisplayName + + + @item.DisplayName + + + + + + } +
+
+ +
+
+
+
diff --git a/BlazorApp/BlazorApp/Components/AvailableItem.razor.cs b/BlazorApp/BlazorApp/Components/AvailableItem.razor.cs new file mode 100644 index 0000000..106a7ab --- /dev/null +++ b/BlazorApp/BlazorApp/Components/AvailableItem.razor.cs @@ -0,0 +1,25 @@ +using System; +using BlazorApp.Models; +using Microsoft.AspNetCore.Components; +using Microsoft.JSInterop; +using System.Collections.ObjectModel; +using System.Collections.Specialized; + +namespace BlazorApp.Components +{ + public partial class AvailableItem + { + public Item CurrentDragItem { get; set; } + + [Parameter] + public List Items { get; set; } + + /// + /// Gets or sets the java script runtime. + /// + [Inject] + internal IJSRuntime JavaScriptRuntime { get; set; } + + } +} + diff --git a/BlazorApp/BlazorApp/Components/AvailableItem.razor.css b/BlazorApp/BlazorApp/Components/AvailableItem.razor.css new file mode 100644 index 0000000..d4c6709 --- /dev/null +++ b/BlazorApp/BlazorApp/Components/AvailableItem.razor.css @@ -0,0 +1,18 @@ +.item { + width: 64px; + height: 64px; + border: 1px solid; + overflow: hidden; +} +.css-grid { + grid-template-columns: repeat(1,minmax(0,1fr)); + gap: 10px; + display: grid; + width: 286px; +} +.txt { + width: 1000px; +} +img { + margin: 10px; +} \ No newline at end of file diff --git a/BlazorApp/BlazorApp/Pages/Index.razor b/BlazorApp/BlazorApp/Pages/Index.razor index 7ae5c1c..532a52a 100644 --- a/BlazorApp/BlazorApp/Pages/Index.razor +++ b/BlazorApp/BlazorApp/Pages/Index.razor @@ -45,4 +45,4 @@
-
+ \ No newline at end of file diff --git a/BlazorApp/BlazorApp/Pages/Index.razor.cs b/BlazorApp/BlazorApp/Pages/Index.razor.cs index c55312f..0922a7b 100644 --- a/BlazorApp/BlazorApp/Pages/Index.razor.cs +++ b/BlazorApp/BlazorApp/Pages/Index.razor.cs @@ -30,5 +30,4 @@ namespace BlazorApp.Pages StateHasChanged(); } } -} - +} \ No newline at end of file diff --git a/BlazorApp/BlazorApp/Pages/Inventory.razor b/BlazorApp/BlazorApp/Pages/Inventory.razor index 68cc6c8..4ead9fd 100644 --- a/BlazorApp/BlazorApp/Pages/Inventory.razor +++ b/BlazorApp/BlazorApp/Pages/Inventory.razor @@ -1,42 +1,75 @@ @page "/inventory" @using BlazorApp.Components; +@using BlazorApp.Pages; +@using BlazorApp.Models; +
+

Inventory

-

Inventory

+
- -
- - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + +
+
+ +
+
+

Available Items

+ + +
+
+ + -
- + + + + @if (!string.IsNullOrWhiteSpace(context.ImageBase64)) + { + @context.DisplayName + } + else + { + @context.DisplayName + } + + + +
\ No newline at end of file diff --git a/BlazorApp/BlazorApp/Pages/Inventory.razor.cs b/BlazorApp/BlazorApp/Pages/Inventory.razor.cs index 6c32433..ca82231 100644 --- a/BlazorApp/BlazorApp/Pages/Inventory.razor.cs +++ b/BlazorApp/BlazorApp/Pages/Inventory.razor.cs @@ -2,6 +2,8 @@ using BlazorApp.Components; using BlazorApp.Models; using BlazorApp.Services; +using Blazorise; +using Blazorise.DataGrid; using Microsoft.AspNetCore.Components; namespace BlazorApp.Pages @@ -13,6 +15,8 @@ namespace BlazorApp.Pages public List Items { get; set; } = new List(); + private int totalItem; + protected override async Task OnAfterRenderAsync(bool firstRender) { base.OnAfterRenderAsync(firstRender); @@ -26,6 +30,25 @@ namespace BlazorApp.Pages StateHasChanged(); } - } -} + + private async Task OnReadData(DataGridReadDataEventArgs e) + { + if (e.CancellationToken.IsCancellationRequested) + { + return; + } + + if (!e.CancellationToken.IsCancellationRequested) + { + Items = await DataService.List(e.Page, e.PageSize); + totalItem = await DataService.Count(); + } + } + + private async Task SortByName(DataGridReadDataEventArgs e) + { + Items = await DataService.SortedList(); + } + } +} \ No newline at end of file diff --git a/BlazorApp/BlazorApp/Pages/Inventory.razor.css b/BlazorApp/BlazorApp/Pages/Inventory.razor.css index 1b5ace6..fd341b9 100644 --- a/BlazorApp/BlazorApp/Pages/Inventory.razor.css +++ b/BlazorApp/BlazorApp/Pages/Inventory.razor.css @@ -2,5 +2,32 @@ grid-template-columns: repeat(6,minmax(0,1fr)); gap: 10px; display: grid; - width: 40%; } +.inventory { + float: left; +} +.search-container h3 { + float: left; + margin-right: 94px; +} +input[type=text] { + padding: 6px; + margin-top: 8px; + font-size: 17px; +} +.search-container button { + float: right; + padding: 6px 10px; + margin-top: 8px; + margin-right: 16px; + background: #ddd; + font-size: 17px; + cursor: pointer; +} +.search-container button:hover { + background: #ccc; +} +.available-items { + float: right; + width: 50%; +} \ No newline at end of file diff --git a/BlazorApp/BlazorApp/Pages/List.razor.cs b/BlazorApp/BlazorApp/Pages/List.razor.cs index 12909a1..845f6a8 100644 --- a/BlazorApp/BlazorApp/Pages/List.razor.cs +++ b/BlazorApp/BlazorApp/Pages/List.razor.cs @@ -89,4 +89,4 @@ namespace BlazorApp.Pages NavigationManager.NavigateTo("list", true); } } -} +} \ No newline at end of file diff --git a/BlazorApp/BlazorApp/Services/DataApiService.cs b/BlazorApp/BlazorApp/Services/DataApiService.cs index 51cc446..19e473b 100644 --- a/BlazorApp/BlazorApp/Services/DataApiService.cs +++ b/BlazorApp/BlazorApp/Services/DataApiService.cs @@ -56,6 +56,18 @@ namespace BlazorApp.Services { return await _http.GetFromJsonAsync>("https://codefirst.iut.uca.fr/containers/container-blazor-web-api-julienriboulet/api/Crafting/recipe"); } - } -} + + // A CHANGER + /* + public async Task> SortedList(List items) + { + + + List it = await _http.GetFromJsonAsync>($"https://codefirst.iut.uca.fr/containers/container-blazor-web-api-julienriboulet/api/Crafting/"); + return it.Sort(); + + } + */ + } +} \ No newline at end of file diff --git a/BlazorApp/BlazorApp/Services/IDataService.cs b/BlazorApp/BlazorApp/Services/IDataService.cs index c040c68..a39928c 100644 --- a/BlazorApp/BlazorApp/Services/IDataService.cs +++ b/BlazorApp/BlazorApp/Services/IDataService.cs @@ -14,7 +14,7 @@ namespace BlazorApp.Services Task Update(int id, ItemModel itemModel); Task Delete(int id); Task> GetRecipes(); - + Task> SortedList(); } }