From 622dd1c2b4539bee1146d998bc8d923eba774365 Mon Sep 17 00:00:00 2001 From: Antoine PINAGOT Date: Sun, 21 Jan 2024 21:45:16 +0100 Subject: [PATCH] Fonctionnement de l'affichage utilisateurs bannis --- Sources/HeartTrack/Pages/AddBannedUsers.razor | 30 ------- .../HeartTrack/Pages/AddBannedUsers.razor.cs | 86 ------------------- Sources/HeartTrack/Pages/BannedUsers.razor | 33 +++++-- Sources/HeartTrack/Pages/BannedUsers.razor.cs | 46 ++++------ Sources/HeartTrack/Program.cs | 9 -- .../UserDataService/IUserDataService.cs | 2 + .../UserDataService/UserDataServiceAPI.cs | 8 ++ .../UserDataService/UserDataServiceFactice.cs | 29 +++++++ 8 files changed, 83 insertions(+), 160 deletions(-) delete mode 100644 Sources/HeartTrack/Pages/AddBannedUsers.razor delete mode 100644 Sources/HeartTrack/Pages/AddBannedUsers.razor.cs diff --git a/Sources/HeartTrack/Pages/AddBannedUsers.razor b/Sources/HeartTrack/Pages/AddBannedUsers.razor deleted file mode 100644 index 8b29571..0000000 --- a/Sources/HeartTrack/Pages/AddBannedUsers.razor +++ /dev/null @@ -1,30 +0,0 @@ -@page "/banned-users/add" -@using HeartTrack.Models - -Add Banned Users - -

Add Banned Users

- - - - - - - - - - - - -
- - Ajouter à la liste des utilisateurs bannis - -
- diff --git a/Sources/HeartTrack/Pages/AddBannedUsers.razor.cs b/Sources/HeartTrack/Pages/AddBannedUsers.razor.cs deleted file mode 100644 index ffb0cf8..0000000 --- a/Sources/HeartTrack/Pages/AddBannedUsers.razor.cs +++ /dev/null @@ -1,86 +0,0 @@ - -using Blazored.LocalStorage; -using Blazorise; -using Blazorise.DataGrid; -using HeartTrack.Models; -using Microsoft.AspNetCore.Components; -using Microsoft.Extensions.Localization; -using MudBlazor; -using static MudBlazor.Colors; - -namespace HeartTrack.Pages -{ - public partial class AddBannedUsers - { - - private List users; - - private int totalUser; - - - [Inject] - public HttpClient Http { get; set; } - - [Inject] - public NavigationManager NavigationManager { get; set; } - - [Inject] - public ILocalStorageService LocalStorage { get; set; } - - [Inject] - public IStringLocalizer Localizer { get; set; } - - protected override async Task OnAfterRenderAsync(bool firstRender) - { - // Do not treat this action if 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 add in the local storage the fake data (we load the data sync for initialize the data before load the OnReadData method) - var originalData = Http.GetFromJsonAsync($"{NavigationManager.BaseUri}fake-users.json").Result; - await LocalStorage.SetItemAsync("data", originalData); - - // Filtrer pour n'afficher que ceux qui ont IsBan à true - //users = users.Where(u => u.isBan = false).ToList(); - - } - } - - 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 LocalStorage.GetItemAsync("data")).Skip((e.Page - 1) * e.PageSize).Take(e.PageSize).ToList(); - - if (!e.CancellationToken.IsCancellationRequested) - { - totalUser = (await LocalStorage.GetItemAsync>("data")).Count; - users = new List(); // an actual data for the current page - foreach (var user in response) { - if (user.isBan = false) - { - users.Add(user); - } - } - - } - } - - private void AddBannedUsersList() - { - // Ajoutez ici la logique pour ajouter les utilisateurs cochés à la liste des utilisateurs bannis - } - } -} \ No newline at end of file diff --git a/Sources/HeartTrack/Pages/BannedUsers.razor b/Sources/HeartTrack/Pages/BannedUsers.razor index c081eb2..0319f83 100644 --- a/Sources/HeartTrack/Pages/BannedUsers.razor +++ b/Sources/HeartTrack/Pages/BannedUsers.razor @@ -11,7 +11,6 @@ This is banned users list of this website. Ajouter - - - - - - - + + + + @if(context.isBan) + { + Banni + + } else + { + Libre + + } + + + + + @if (context.isBan) + { + + } + else + { + + } + + diff --git a/Sources/HeartTrack/Pages/BannedUsers.razor.cs b/Sources/HeartTrack/Pages/BannedUsers.razor.cs index 0e57439..7125cb3 100644 --- a/Sources/HeartTrack/Pages/BannedUsers.razor.cs +++ b/Sources/HeartTrack/Pages/BannedUsers.razor.cs @@ -2,8 +2,12 @@ using Blazorise; using Blazorise.DataGrid; using HeartTrack.Models; +using HeartTrack.Services.TicketDataService; +using HeartTrack.Services.UserDataService; using Microsoft.AspNetCore.Components; using Microsoft.Extensions.Localization; +using static MudBlazor.CategoryTypes; +using System.Net.Http; namespace HeartTrack.Pages { @@ -13,39 +17,15 @@ namespace HeartTrack.Pages private int totalUser; - [Inject] public HttpClient Http { get; set; } [Inject] public NavigationManager NavigationManager { get; set; } - [Inject] public ILocalStorageService LocalStorage { get; set; } - [Inject] - public IStringLocalizer Localizer { get; set; } - - protected override async Task OnAfterRenderAsync(bool firstRender) - { - // Do not treat this action if 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 add in the local storage the fake data (we load the data sync for initialize the data before load the OnReadData method) - var originalData = Http.GetFromJsonAsync($"{NavigationManager.BaseUri}fake-users.json").Result; - await LocalStorage.SetItemAsync("data", originalData); - - - } - } + public IUserDataService UserService { get; set; } private async Task OnReadData(DataGridReadDataEventArgs e) { @@ -55,14 +35,24 @@ namespace HeartTrack.Pages } // 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 LocalStorage.GetItemAsync("data")).Skip((e.Page - 1) * e.PageSize).Take(e.PageSize).ToList(); + //var response = await Http.GetJsonAsync( $"http://my-api/api/data?page={e.Page}&pageSize={e.PageSize}" ); + var response = (await Http.GetFromJsonAsync($"{NavigationManager.BaseUri}fake-users.json")).Skip((e.Page - 1) * e.PageSize).Take(e.PageSize).ToList(); if (!e.CancellationToken.IsCancellationRequested) { - totalUser = (await LocalStorage.GetItemAsync>("data")).Count; + totalUser = (await Http.GetFromJsonAsync>($"{NavigationManager.BaseUri}fake-users.json")).Count; users = new List(response); // an actual data for the current page } } + private void BanOnID(int id) + { + UserService.BanOnId(id); + NavigationManager.NavigateTo("/banned-users", true); + } + private void UnbanOnID(int id) + { + UserService.UnbanOnId(id); + NavigationManager.NavigateTo("/banned-users", true); + } } } diff --git a/Sources/HeartTrack/Program.cs b/Sources/HeartTrack/Program.cs index 5d6d55a..173ff01 100644 --- a/Sources/HeartTrack/Program.cs +++ b/Sources/HeartTrack/Program.cs @@ -10,15 +10,6 @@ using HeartTrack.Services.ActivityDataService; using HeartTrack.Services.ReportDataService; using HeartTrack.Services.UserDataService; using HeartTrack.Services.TicketDataService; -using Blazorise; -using Blazorise.Bootstrap; -using Blazorise.Icons.FontAwesome; -using Microsoft.AspNetCore.Localization; -using System.Globalization; -using Microsoft.Extensions.Options; -using Blazored.LocalStorage; -using HeartTrack.Services; -using Microsoft.AspNetCore.Components.Authorization; using MudBlazor.Services; using HeartTrack.Services.TicketDataServiceFactice; diff --git a/Sources/HeartTrack/Services/UserDataService/IUserDataService.cs b/Sources/HeartTrack/Services/UserDataService/IUserDataService.cs index 2e9673b..98e05a1 100644 --- a/Sources/HeartTrack/Services/UserDataService/IUserDataService.cs +++ b/Sources/HeartTrack/Services/UserDataService/IUserDataService.cs @@ -16,6 +16,8 @@ namespace HeartTrack.Services.UserDataService public Task UpdateUser(User u); public Task getUserById(int id); + public void BanOnId(int id); + public void UnbanOnId(int id); } } diff --git a/Sources/HeartTrack/Services/UserDataService/UserDataServiceAPI.cs b/Sources/HeartTrack/Services/UserDataService/UserDataServiceAPI.cs index 4623ffc..db3bd50 100644 --- a/Sources/HeartTrack/Services/UserDataService/UserDataServiceAPI.cs +++ b/Sources/HeartTrack/Services/UserDataService/UserDataServiceAPI.cs @@ -82,5 +82,13 @@ namespace HeartTrack.Services.UserDataService Console.WriteLine("API - Problème mise à jour User"); } } + public async void BanOnId(int id) + { + + } + public async void UnbanOnId(int id) + { + + } } } \ No newline at end of file diff --git a/Sources/HeartTrack/Services/UserDataService/UserDataServiceFactice.cs b/Sources/HeartTrack/Services/UserDataService/UserDataServiceFactice.cs index 5a43b6b..ca82764 100644 --- a/Sources/HeartTrack/Services/UserDataService/UserDataServiceFactice.cs +++ b/Sources/HeartTrack/Services/UserDataService/UserDataServiceFactice.cs @@ -135,5 +135,34 @@ namespace HeartTrack.Services.UserDataServiceFactice await this.RemoveUser(u); await this.AddUser(u); } + public async void BanOnId(int id) + { + // Get the current data + var currentData = await _localStorage.GetItemAsync>("data"); + + // Get the item int the list + var item = currentData.FirstOrDefault(w => w.Id == id); + + // Update item status + item.isBan = true; + + // Save the data + await _localStorage.SetItemAsync("data", currentData); + } + + public async void UnbanOnId(int id) + { + // Get the current data + var currentData = await _localStorage.GetItemAsync>("data"); + + // Get the item int the list + var item = currentData.FirstOrDefault(w => w.Id == id); + + // Update item status + item.isBan = false; + + // Save the data + await _localStorage.SetItemAsync("data", currentData); + } } } \ No newline at end of file