From 1dc7650866799e71ad3c0e44f23c08fe0133489e Mon Sep 17 00:00:00 2001 From: Jeremy DUCOURTHIAL Date: Wed, 13 Dec 2023 09:59:40 +0100 Subject: [PATCH 1/7] feat : Blazor projet --- Blazor/Blazor/Blazor.csproj | 7 ++++ Blazor/Blazor/Models/Administrator.cs | 6 ++++ Blazor/Blazor/Models/Answer.cs | 6 ++++ Blazor/Blazor/Models/Chapter.cs | 8 +++++ Blazor/Blazor/Models/Player.cs | 6 ++++ Blazor/Blazor/Pages/Administrators.razor | 7 ++++ Blazor/Blazor/Pages/Administrators.razor.cs | 6 ++++ Blazor/Blazor/Pages/Chapters.razor | 16 +++++++++ Blazor/Blazor/Pages/Chapters.razor.cs | 37 +++++++++++++++++++++ Blazor/Blazor/Program.cs | 13 ++++++++ Blazor/Blazor/Shared/NavMenu.razor | 4 +-- Blazor/Blazor/_Imports.razor | 2 ++ 12 files changed, 116 insertions(+), 2 deletions(-) create mode 100644 Blazor/Blazor/Models/Administrator.cs create mode 100644 Blazor/Blazor/Models/Answer.cs create mode 100644 Blazor/Blazor/Models/Chapter.cs create mode 100644 Blazor/Blazor/Models/Player.cs create mode 100644 Blazor/Blazor/Pages/Administrators.razor create mode 100644 Blazor/Blazor/Pages/Administrators.razor.cs create mode 100644 Blazor/Blazor/Pages/Chapters.razor create mode 100644 Blazor/Blazor/Pages/Chapters.razor.cs diff --git a/Blazor/Blazor/Blazor.csproj b/Blazor/Blazor/Blazor.csproj index 4c2bb77..47b71bb 100644 --- a/Blazor/Blazor/Blazor.csproj +++ b/Blazor/Blazor/Blazor.csproj @@ -6,4 +6,11 @@ enable + + + + + + + diff --git a/Blazor/Blazor/Models/Administrator.cs b/Blazor/Blazor/Models/Administrator.cs new file mode 100644 index 0000000..1fbe03e --- /dev/null +++ b/Blazor/Blazor/Models/Administrator.cs @@ -0,0 +1,6 @@ +namespace Blazor.Models +{ + public class Administrator + { + } +} diff --git a/Blazor/Blazor/Models/Answer.cs b/Blazor/Blazor/Models/Answer.cs new file mode 100644 index 0000000..3922505 --- /dev/null +++ b/Blazor/Blazor/Models/Answer.cs @@ -0,0 +1,6 @@ +namespace Blazor.Models +{ + public class Answer + { + } +} diff --git a/Blazor/Blazor/Models/Chapter.cs b/Blazor/Blazor/Models/Chapter.cs new file mode 100644 index 0000000..1ec4853 --- /dev/null +++ b/Blazor/Blazor/Models/Chapter.cs @@ -0,0 +1,8 @@ +namespace Blazor.Models +{ + public class Chapter + { + public int Id { get; set; } + public string Name { get; set; } + } +} diff --git a/Blazor/Blazor/Models/Player.cs b/Blazor/Blazor/Models/Player.cs new file mode 100644 index 0000000..2cd44ce --- /dev/null +++ b/Blazor/Blazor/Models/Player.cs @@ -0,0 +1,6 @@ +namespace Blazor.Models +{ + public class Player + { + } +} diff --git a/Blazor/Blazor/Pages/Administrators.razor b/Blazor/Blazor/Pages/Administrators.razor new file mode 100644 index 0000000..1cd98cd --- /dev/null +++ b/Blazor/Blazor/Pages/Administrators.razor @@ -0,0 +1,7 @@ +@page "/Administrators" + +

Component

+ +@code { + +} diff --git a/Blazor/Blazor/Pages/Administrators.razor.cs b/Blazor/Blazor/Pages/Administrators.razor.cs new file mode 100644 index 0000000..05cd3a7 --- /dev/null +++ b/Blazor/Blazor/Pages/Administrators.razor.cs @@ -0,0 +1,6 @@ +namespace Blazor.Pages +{ + public class ListAdministrators + { + } +} diff --git a/Blazor/Blazor/Pages/Chapters.razor b/Blazor/Blazor/Pages/Chapters.razor new file mode 100644 index 0000000..bdf3267 --- /dev/null +++ b/Blazor/Blazor/Pages/Chapters.razor @@ -0,0 +1,16 @@ +@page "/chapters" +@using Blazor.Models; +@using Blazorise.DataGrid +

Chapters

+ + + + + + diff --git a/Blazor/Blazor/Pages/Chapters.razor.cs b/Blazor/Blazor/Pages/Chapters.razor.cs new file mode 100644 index 0000000..a893535 --- /dev/null +++ b/Blazor/Blazor/Pages/Chapters.razor.cs @@ -0,0 +1,37 @@ +using Microsoft.AspNetCore.Components; +using Blazor.Models; +using Blazorise.DataGrid; + +namespace Blazor.Pages +{ + public partial class Chapters + { + public List chapters; + + private int totalItem; + + [Inject] + public HttpClient Http { get; set; } + + [Inject] + public NavigationManager NavigationManager { get; set; } + + private async Task OnReadData(DataGridReadDataEventArgs e) + { + if (e.CancellationToken.IsCancellationRequested) + { + return; + } + + // When you use a real API, we use this follow code + //var response = await Http.GetJsonAsync( $"http://my-api/api/data?page={e.Page}&pageSize={e.PageSize}" ); + var response = (await Http.GetFromJsonAsync($"{NavigationManager.BaseUri}fake-data.json")).Skip((e.Page - 1) * e.PageSize).Take(e.PageSize).ToList(); + + if (!e.CancellationToken.IsCancellationRequested) + { + totalItem = (await Http.GetFromJsonAsync>($"{NavigationManager.BaseUri}fake-data.json")).Count; + chapters = new List(response); // an actual data for the current page + } + } + } +} diff --git a/Blazor/Blazor/Program.cs b/Blazor/Blazor/Program.cs index 5195276..f886838 100644 --- a/Blazor/Blazor/Program.cs +++ b/Blazor/Blazor/Program.cs @@ -1,4 +1,8 @@ using Blazor.Data; +using Blazored.LocalStorage; +using Blazorise; +using Blazorise.Bootstrap; +using Blazorise.Icons.FontAwesome; using Microsoft.AspNetCore.Components; using Microsoft.AspNetCore.Components.Web; @@ -9,6 +13,15 @@ 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/Blazor/Blazor/Shared/NavMenu.razor b/Blazor/Blazor/Shared/NavMenu.razor index 5553e13..4b47f82 100644 --- a/Blazor/Blazor/Shared/NavMenu.razor +++ b/Blazor/Blazor/Shared/NavMenu.razor @@ -15,8 +15,8 @@ +