diff --git a/Project/adminBlazor/adminBlazor.sln b/Project/adminBlazor/adminBlazor.sln
index afb6e13..ecfdb23 100644
--- a/Project/adminBlazor/adminBlazor.sln
+++ b/Project/adminBlazor/adminBlazor.sln
@@ -1,9 +1,9 @@
Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio Version 16
-VisualStudioVersion = 25.0.1706.7
+# Visual Studio Version 17
+VisualStudioVersion = 17.8.34330.188
MinimumVisualStudioVersion = 10.0.40219.1
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "adminBlazor", "adminBlazor\adminBlazor.csproj", "{5985AE7A-DA9C-4A68-80E0-2D92926C1FB5}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "adminBlazor", "adminBlazor\adminBlazor.csproj", "{5985AE7A-DA9C-4A68-80E0-2D92926C1FB5}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
diff --git a/Project/adminBlazor/adminBlazor/Pages/DataGrid.razor b/Project/adminBlazor/adminBlazor/Pages/DataGrid.razor
new file mode 100644
index 0000000..e69de29
diff --git a/Project/adminBlazor/adminBlazor/Pages/DataGridColumn.razor b/Project/adminBlazor/adminBlazor/Pages/DataGridColumn.razor
new file mode 100644
index 0000000..e69de29
diff --git a/Project/adminBlazor/adminBlazor/Pages/List.razor b/Project/adminBlazor/adminBlazor/Pages/List.razor
new file mode 100644
index 0000000..6c1d33a
--- /dev/null
+++ b/Project/adminBlazor/adminBlazor/Pages/List.razor
@@ -0,0 +1,39 @@
+@page "/list"
+@using Minecraft.Models
+
+
+
+
+
+
+
+
+
List
+
+
+
+ Ajouter
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ @(string.Join(", ", ((User)context).Roles))
+
+
+
\ No newline at end of file
diff --git a/Project/adminBlazor/adminBlazor/Pages/List.razor.cs b/Project/adminBlazor/adminBlazor/Pages/List.razor.cs
new file mode 100644
index 0000000..cad0765
--- /dev/null
+++ b/Project/adminBlazor/adminBlazor/Pages/List.razor.cs
@@ -0,0 +1,63 @@
+using adminBlazor.Models;
+using Blazored.LocalStorage;
+using Blazorise.DataGrid;
+using Microsoft.AspNetCore.Components;
+using System.Linq;
+using System.Net.Http;
+using System.Net.Http.Json;
+using System.Threading.Tasks;
+
+namespace adminBlazor.Pages
+{
+ public partial class List
+ {
+ private User[] users;
+ private int totalUser;
+
+ [Inject]
+ public HttpClient Http { get; set; }
+
+ [Inject]
+ public ILocalStorageService LocalStorage { get; set; }
+
+ [Inject]
+ public NavigationManager NavigationManager { get; set; }
+
+ protected override async Task OnAfterRenderAsync(bool firstRender)
+ {
+ // Do not treat this action if it is not the first render
+ if (!firstRender)
+ {
+ return;
+ }
+
+ var currentData = await LocalStorage.GetItemAsync("data");
+
+ // Check if data exist in the local storage
+ if (currentData == null)
+ {
+ // This code adds fake data to local storage (loading data synchronously to initialize before the OnReadData method)
+ var originalData = await Http.GetFromJsonAsync($"{NavigationManager.BaseUri}fake-data.json");
+ await LocalStorage.SetItemAsync("data", originalData);
+ }
+ }
+
+ private async Task OnReadData(DataGridReadDataEventArgs e)
+ {
+ if (e.CancellationToken.IsCancellationRequested)
+ {
+ return;
+ }
+
+ // When you use a real API, you use the following code
+ // var response = await Http.GetJsonAsync( $"http://my-api/api/data?page={e.Page}&pageSize={e.PageSize}" );
+ var response = (await LocalStorage.GetItemAsync("data")).Skip((e.Page - 1) * e.PageSize).Take(e.PageSize).ToList();
+
+ if (!e.CancellationToken.IsCancellationRequested)
+ {
+ totalUser = (await LocalStorage.GetItemAsync("data")).Length;
+ users = response.ToArray(); // actual data for the current page
+ }
+ }
+ }
+}
diff --git a/Project/adminBlazor/adminBlazor/Program.cs b/Project/adminBlazor/adminBlazor/Program.cs
index 149b569..d954df1 100644
--- a/Project/adminBlazor/adminBlazor/Program.cs
+++ b/Project/adminBlazor/adminBlazor/Program.cs
@@ -1,6 +1,10 @@
using Microsoft.AspNetCore.Components;
using Microsoft.AspNetCore.Components.Web;
using adminBlazor.Data;
+using Blazorise;
+using Blazorise.Bootstrap;
+using Blazorise.Icons.FontAwesome;
+using Blazored.LocalStorage;
var builder = WebApplication.CreateBuilder(args);
@@ -9,6 +13,17 @@ builder.Services.AddRazorPages();
builder.Services.AddServerSideBlazor();
builder.Services.AddSingleton();
+builder.Services.AddHttpClient();
+
+
+
+builder.Services
+ .AddBlazorise()
+ .AddBootstrapProviders()
+ .AddFontAwesomeIcons();
+
+builder.Services.AddBlazoredLocalStorage();
+
var app = builder.Build();
// Configure the HTTP request pipeline.
diff --git a/Project/adminBlazor/adminBlazor/adminBlazor.csproj b/Project/adminBlazor/adminBlazor/adminBlazor.csproj
index e6ac2a2..f5b377a 100644
--- a/Project/adminBlazor/adminBlazor/adminBlazor.csproj
+++ b/Project/adminBlazor/adminBlazor/adminBlazor.csproj
@@ -1,4 +1,4 @@
-
+
net7.0
@@ -8,4 +8,10 @@
+
+
+
+
+
+
diff --git a/Project/adminBlazor/adminBlazor/wwwroot/css/user.json b/Project/adminBlazor/adminBlazor/wwwroot/css/user.json
new file mode 100644
index 0000000..ad3b9ee
--- /dev/null
+++ b/Project/adminBlazor/adminBlazor/wwwroot/css/user.json
@@ -0,0 +1,38 @@
+[
+ {
+ "id": 1,
+ "password": "password1",
+ "email": "user1@example.com",
+ "name": "John",
+ "surname": "Doe",
+ "nickname": "JD",
+ "image": "user1.jpg",
+ "extraTime": true,
+ "group": 1,
+ "roles": [ "Admin", "Student" ]
+ },
+ {
+ "id": 2,
+ "password": "password2",
+ "email": "user2@example.com",
+ "name": "Alice",
+ "surname": "Smith",
+ "nickname": "AS",
+ "image": "user2.jpg",
+ "extraTime": false,
+ "group": 2,
+ "roles": [ "Student" ]
+ },
+ {
+ "id": 3,
+ "password": "password3",
+ "email": "user3@example.com",
+ "name": "Bob",
+ "surname": "Johnson",
+ "nickname": "BJ",
+ "image": "user3.jpg",
+ "extraTime": true,
+ "group": 3,
+ "roles": [ "Teacher" ]
+ }
+]