From 6f16e134ca30c9b3d0a684764f24d59b91119b1f Mon Sep 17 00:00:00 2001 From: "louis.guichard-montguers" Date: Sun, 2 Feb 2025 13:19:45 +0100 Subject: [PATCH] doc sur Pages --- .../WF-WebAdmin/Pages/Accueil.razor.cs | 24 +++- .../WF-WebAdmin/Pages/AddQuiz.razor.cs | 60 +++++---- .../WF-WebAdmin/Pages/DeleteUser.razor.cs | 124 ++++++++++++++---- WF-WebAdmin/WF-WebAdmin/Pages/Edit.razor.cs | 58 +++++++- WF-WebAdmin/WF-WebAdmin/Pages/Error.cshtml.cs | 18 +++ WF-WebAdmin/WF-WebAdmin/Pages/Login.razor.cs | 59 +++++++-- .../WF-WebAdmin/Pages/ModifQuiz.razor.cs | 59 ++++++++- .../WF-WebAdmin/Pages/ModifQuote.razor.cs | 55 +++++--- .../WF-WebAdmin/Pages/ValidQuiz.razor.cs | 41 +++++- .../WF-WebAdmin/Pages/ValidQuote.razor.cs | 17 ++- 10 files changed, 415 insertions(+), 100 deletions(-) diff --git a/WF-WebAdmin/WF-WebAdmin/Pages/Accueil.razor.cs b/WF-WebAdmin/WF-WebAdmin/Pages/Accueil.razor.cs index 797b255..c7458cc 100644 --- a/WF-WebAdmin/WF-WebAdmin/Pages/Accueil.razor.cs +++ b/WF-WebAdmin/WF-WebAdmin/Pages/Accueil.razor.cs @@ -3,25 +3,45 @@ using Microsoft.AspNetCore.Components; using Microsoft.Extensions.Localization; using WF_WebAdmin.Model; - namespace WF_WebAdmin.Pages { + /// + /// Page d'accueil qui affiche des citations quotidiennes. + /// public partial class Accueil { + /// + /// Tableau contenant les citations quotidiennes. + /// private Quote[] Dailyquote; + /// + /// Service HttpClient pour faire des requêtes HTTP. + /// [Inject] public HttpClient Http { get; set; } + /// + /// Service NavigationManager pour la gestion de la navigation dans l'application. + /// [Inject] public NavigationManager NavigationManager { get; set; } + /// + /// Service pour la localisation des ressources (traductions) sur la page. + /// [Inject] public IStringLocalizer Localizer { get; set; } + + /// + /// Méthode appelée lors de l'initialisation du composant. + /// Elle charge les citations quotidiennes depuis un fichier JSON. + /// + /// Une tâche représentant l'opération asynchrone. protected override async Task OnInitializedAsync() { + // Chargement des citations quotidiennes depuis le fichier JSON Dailyquote = await Http.GetFromJsonAsync($"{NavigationManager.BaseUri}fake-dataDailyQuote.json"); - } } } diff --git a/WF-WebAdmin/WF-WebAdmin/Pages/AddQuiz.razor.cs b/WF-WebAdmin/WF-WebAdmin/Pages/AddQuiz.razor.cs index 36de693..062c2fe 100644 --- a/WF-WebAdmin/WF-WebAdmin/Pages/AddQuiz.razor.cs +++ b/WF-WebAdmin/WF-WebAdmin/Pages/AddQuiz.razor.cs @@ -3,7 +3,7 @@ using WF_WebAdmin.Service; using WF_WebAdmin.Model; using Microsoft.AspNetCore.Mvc; using System.Text.RegularExpressions; - +using System; namespace WF_WebAdmin.Pages { @@ -17,12 +17,16 @@ namespace WF_WebAdmin.Pages private QuizModel QuizModel = new(); + /// + /// Handles the form submission to create a new quiz. + /// private async void HandleValidSubmit() { - int id; - id = await quizService.getNbQuiz(); - id++; + id = await quizService.getNbQuiz(); // Fetch the current quiz count + id++; // Increment the quiz ID to create a new quiz ID + + // Create and add the quiz using the validated inputs await quizService.addQuiz(new Quiz( id, validateInformation(QuizModel.Question), @@ -32,48 +36,56 @@ namespace WF_WebAdmin.Pages validateInformation(QuizModel.AnswerD), validateReponse(QuizModel.CAnswer) )); + + // Navigate to the quiz management page after adding the quiz NavigationManager.NavigateTo("modifquiz"); } + /// + /// Handles the change in the correct answer selection. + /// private void OnCAwnserChange(string item, object checkedValue) { QuizModel.CAnswer = item; } + /// + /// Validates each input (question or answers) to ensure it isn't null or empty. + /// private static string validateInformation(string item) { - return item; // VALIDATION A FAIRE + if (string.IsNullOrWhiteSpace(item)) + { + throw new ArgumentException("Input cannot be empty or whitespace."); + } + return item; // Return the valid input } + /// + /// Validates the selected correct answer to be one of the valid options (A, B, C, D). + /// private static string validateReponse(string item) { try { - if (!string.IsNullOrEmpty(item)) + if (string.IsNullOrEmpty(item)) { - switch (item) - { - case "A": - break; - case "B": - break; - case "C": - break; - case "D": - break; - default: - throw new InvalidDataException("Invalid item (validateReponse) : item must be A,B,C or D " + item + "give."); - } + throw new ArgumentNullException("Correct answer must be selected."); } - else + + // Ensure the answer is one of A, B, C, or D + if (!Regex.IsMatch(item, "^[A-D]$")) { - throw new ArgumentNullException("Invalid item (validateReponse): null given."); + throw new InvalidDataException($"Invalid answer choice: '{item}'. Answer must be one of A, B, C, or D."); } - return item; + + return item; // Return the valid answer } - catch (Exception ex) + catch (Exception ex) { - return "A"; //Default Argument + // Log error or show a message to the user + Console.WriteLine(ex.Message); + return "A"; // Return default answer "A" if validation fails } } } diff --git a/WF-WebAdmin/WF-WebAdmin/Pages/DeleteUser.razor.cs b/WF-WebAdmin/WF-WebAdmin/Pages/DeleteUser.razor.cs index 8cdd926..14e75a8 100644 --- a/WF-WebAdmin/WF-WebAdmin/Pages/DeleteUser.razor.cs +++ b/WF-WebAdmin/WF-WebAdmin/Pages/DeleteUser.razor.cs @@ -1,6 +1,5 @@ using Blazorise.DataGrid; using Microsoft.AspNetCore.Components; -using Microsoft.Extensions.Configuration.UserSecrets; using Microsoft.Extensions.Localization; using System.Collections.Generic; using WF_WebAdmin.Model; @@ -8,21 +7,65 @@ using WF_WebAdmin.Service; namespace WF_WebAdmin.Pages { + /// + /// Page permettant de gérer les utilisateurs, y compris la suppression, la modification, et l'attribution du rôle admin. + /// public partial class DeleteUser { - + /// + /// Indicateur pour afficher ou non la popup de confirmation de suppression. + /// private bool showDeletePopup = false; + + /// + /// Indicateur pour afficher ou non la popup de confirmation de modification d'utilisateur. + /// private bool showModifyPopup = false; + + /// + /// Liste des utilisateurs à afficher dans la page. + /// private List users; + + /// + /// Utilisateur sélectionné pour la suppression. + /// private User userToDelete = null; + + /// + /// Utilisateur sélectionné pour la modification. + /// private User selectedUser; + + /// + /// Indicateur pour afficher ou non la popup de confirmation de suppression. + /// private bool showPopupDelete = false; + + /// + /// Indicateur pour afficher ou non la popup de confirmation de l'attribution du rôle admin. + /// private bool showPopupAdmin = false; + + /// + /// Utilisateur sélectionné pour devenir administrateur. + /// private User userToAdmin = null; + + /// + /// Nombre maximum d'utilisateurs à afficher par page. + /// private int MaxValue = 5; + + /// + /// Nombre total d'utilisateurs dans la base de données. + /// private int totalItem; - private int page = 1; + /// + /// Numéro de la page actuelle dans le DataGrid. + /// + private int page = 1; [Inject] public HttpClient Http { get; set; } @@ -30,19 +73,30 @@ namespace WF_WebAdmin.Pages [Inject] public NavigationManager NavigationManager { get; set; } + /// + /// Service permettant de gérer les utilisateurs (CRUD). + /// [Inject] private IUserService userService { get; set; } - [Inject] + /// + /// Localisateur de chaîne pour gérer la localisation de la page. + /// + [Inject] public IStringLocalizer Localizer { get; set; } - - + /// + /// Méthode appelée lors de l'initialisation de la page. Charge les utilisateurs à afficher. + /// protected override async Task OnInitializedAsync() { + // Charge la première page des utilisateurs users = await userService.getSomeUser(MaxValue, 1); } + /// + /// Méthode appelée lors de la lecture des données dans le DataGrid. Gère la pagination et l'affichage des utilisateurs. + /// private async Task OnReadData(DataGridReadDataEventArgs e) { if (e.CancellationToken.IsCancellationRequested) @@ -50,48 +104,62 @@ namespace WF_WebAdmin.Pages return; } - + // Récupère les utilisateurs pour la page demandée var response = await userService.getSomeUser(e.PageSize, e.Page); if (!e.CancellationToken.IsCancellationRequested) { - totalItem = await userService.getNbUser(); - users = new List(response.ToArray()); - page = e.Page; + totalItem = await userService.getNbUser(); // Récupère le nombre total d'utilisateurs + users = new List(response.ToArray()); // Met à jour la liste des utilisateurs + page = e.Page; // Met à jour le numéro de la page } } // ------- Popup remove user ------- + /// + /// Affiche la popup de confirmation de suppression de l'utilisateur sélectionné. + /// private void ShowConfirmation(User user) { userToDelete = user; showPopupDelete = true; } + /// + /// Affiche la popup de modification de l'utilisateur sélectionné. + /// private void ShowModifyConfirmation(User user) { - // Afficher la modale et mémoriser l'utilisateur à supprimer selectedUser = user; showModifyPopup = true; } + /// + /// Supprime l'utilisateur sélectionné et met à jour la liste des utilisateurs affichés. + /// private async Task RemoveUser() { if (userToDelete != null) { - await userService.removeUser(userToDelete); - ClosePopup(); - var response = await userService.getSomeUser(MaxValue, page); - users = new List(response.ToArray()); + await userService.removeUser(userToDelete); // Appelle le service pour supprimer l'utilisateur + ClosePopup(); // Ferme les popups + var response = await userService.getSomeUser(MaxValue, page); // Récupère à nouveau les utilisateurs + users = new List(response.ToArray()); // Met à jour la liste des utilisateurs } } + /// + /// Met à jour l'utilisateur sélectionné. + /// private async Task ModifyUser() { - await userService.updateUser(selectedUser); - ClosePopup(); + await userService.updateUser(selectedUser); // Appelle le service pour mettre à jour l'utilisateur + ClosePopup(); // Ferme les popups } + /// + /// Ferme toutes les popups actuellement ouvertes. + /// private void ClosePopup() { showDeletePopup = false; @@ -100,31 +168,33 @@ namespace WF_WebAdmin.Pages showPopupAdmin = false; } - // ------- Popup admin ------- + /// + /// Affiche la popup de confirmation pour attribuer ou révoquer le rôle d'administrateur. + /// private void ShowConfirmationAdmin(User user) { userToAdmin = user; showPopupAdmin = true; } - - + /// + /// Attribue ou révoque le rôle d'administrateur pour l'utilisateur sélectionné. + /// private async Task setAdmin() { - if (!userToAdmin.IsAdmin) + if (!userToAdmin.IsAdmin) // Si l'utilisateur n'est pas administrateur, on l'attribue comme admin { userToAdmin.IsAdmin = true; - await userService.updateUser(userToAdmin); - ClosePopup(); + await userService.updateUser(userToAdmin); // Met à jour l'utilisateur + ClosePopup(); // Ferme les popups } - else + else // Si l'utilisateur est déjà administrateur, on révoque ce rôle { userToAdmin.IsAdmin = false; - await userService.updateUser(userToAdmin); - ClosePopup(); + await userService.updateUser(userToAdmin); // Met à jour l'utilisateur + ClosePopup(); // Ferme les popups } } - } } diff --git a/WF-WebAdmin/WF-WebAdmin/Pages/Edit.razor.cs b/WF-WebAdmin/WF-WebAdmin/Pages/Edit.razor.cs index 71bb9f0..a257e8e 100644 --- a/WF-WebAdmin/WF-WebAdmin/Pages/Edit.razor.cs +++ b/WF-WebAdmin/WF-WebAdmin/Pages/Edit.razor.cs @@ -4,28 +4,59 @@ using WF_WebAdmin.Service; namespace WF_WebAdmin.Pages { + /// + /// Page permettant de modifier une citation existante. + /// public partial class Edit { + /// + /// Identifiant de la citation à éditer passé en paramètre de la route. + /// [Parameter] public int Id { get; set; } + /// + /// Service pour gérer les citations. + /// [Inject] - private IQuoteService quoteService { get; set; } + private IQuoteService quoteService { get; set; } + /// + /// Service pour la navigation entre les pages. + /// [Inject] public NavigationManager NavigationManager { get; set; } - private Quote q{ get; set; } + /// + /// Citation actuelle à éditer. + /// + private Quote q { get; set; } + /// + /// Modèle de données pour l'édition de la citation. + /// private QuoteModel quoteModel = new(); + /// + /// Liste des personnages disponibles pour l'édition. + /// private List charac = new List(); + /// + /// Liste des sources disponibles pour l'édition. + /// private List src = new List(); + /// + /// Méthode appelée lors de l'initialisation de la page. + /// Elle charge la citation à éditer ainsi que les données associées (personnages, sources). + /// protected override async Task OnInitializedAsync() { + // Récupère la citation à éditer à partir de l'ID q = await quoteService.getOnequote(Id); + + // Initialise le modèle de données avec les informations de la citation quoteModel.Content = q.Content; quoteModel.Langue = q.Langue; quoteModel.Charac = q.Charac; @@ -36,30 +67,43 @@ namespace WF_WebAdmin.Pages quoteModel.DateSrc = q.DateSrc; quoteModel.UserProposition = q.UserProposition; quoteModel.IsValid = q.IsValid; + + // Charge la liste des personnages et des sources charac = await quoteService.getChar(); src = await quoteService.getSrc(); } + /// + /// Méthode appelée lors de la soumission valide du formulaire d'édition. + /// Elle met à jour la citation avec les nouvelles données. + /// protected async void HandleValidSubmit() { + // Met à jour les informations de la citation q.Content = quoteModel.Content; q.Langue = quoteModel.Langue; q.TitleSrc = quoteModel.TitleSrc; q.Charac = quoteModel.Charac; + + // Appelle le service pour mettre à jour la citation dans la base de données await quoteService.updateQuote(q); + + // Redirige vers la page des citations à modifier NavigationManager.NavigateTo("modifquote"); } + /// + /// Méthode appelée lors du changement de langue dans le formulaire. + /// + /// Langue sélectionnée. + /// Valeur de l'élément vérifié. private void OnlangChange(string item, object checkedValue) { - if(item == "fr" || item == "en") + // Si la langue est "fr" ou "en", met à jour la langue dans le modèle de données + if (item == "fr" || item == "en") { quoteModel.Langue = item; } } - - - - } } diff --git a/WF-WebAdmin/WF-WebAdmin/Pages/Error.cshtml.cs b/WF-WebAdmin/WF-WebAdmin/Pages/Error.cshtml.cs index 49fc22c..f17a823 100644 --- a/WF-WebAdmin/WF-WebAdmin/Pages/Error.cshtml.cs +++ b/WF-WebAdmin/WF-WebAdmin/Pages/Error.cshtml.cs @@ -4,23 +4,41 @@ using System.Diagnostics; namespace WF_WebAdmin.Pages { + /// + /// Modèle de page Razor pour afficher les erreurs dans l'application. + /// [ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)] [IgnoreAntiforgeryToken] public class ErrorModel : PageModel { + /// + /// Identifiant unique de la requête pour le suivi des erreurs. + /// public string? RequestId { get; set; } + /// + /// Indicateur pour afficher l'ID de la requête si ce dernier est disponible. + /// public bool ShowRequestId => !string.IsNullOrEmpty(RequestId); private readonly ILogger _logger; + /// + /// Constructeur pour initialiser le modèle de page avec le service de journalisation. + /// + /// Service de journalisation pour capturer les erreurs. public ErrorModel(ILogger logger) { _logger = logger; } + /// + /// Méthode appelée lors de l'accès à la page d'erreur. + /// Elle enregistre l'ID de la requête pour la journalisation et l'affichage des erreurs. + /// public void OnGet() { + // Capture de l'ID de la requête à partir de l'activité en cours ou du trace identifier RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier; } } diff --git a/WF-WebAdmin/WF-WebAdmin/Pages/Login.razor.cs b/WF-WebAdmin/WF-WebAdmin/Pages/Login.razor.cs index c63b04f..61f0b48 100644 --- a/WF-WebAdmin/WF-WebAdmin/Pages/Login.razor.cs +++ b/WF-WebAdmin/WF-WebAdmin/Pages/Login.razor.cs @@ -1,70 +1,101 @@ using Microsoft.AspNetCore.Components; -using Microsoft.Extensions.Configuration.UserSecrets; using Microsoft.Extensions.Localization; using WF_WebAdmin.Model; - - namespace WF_WebAdmin.Pages { + /// + /// Composant Blazor pour la gestion de la connexion des utilisateurs. + /// public partial class Login { + /// + /// Service de localisation pour gérer les textes multilingues dans la page de connexion. + /// [Inject] public IStringLocalizer Localizer { get; set; } + /// + /// Objet représentant les informations de connexion de l'utilisateur. + /// private UserLogin userLogin = new UserLogin(); + /// + /// Objet représentant l'utilisateur connecté. + /// [Inject] - public UserLogin uLogin { get; set; } + public UserLogin uLogin { get; set; } + /// + /// Message d'erreur affiché en cas de connexion échouée. + /// private string ErrorConnexion; + /// + /// Liste des utilisateurs enregistrés pour la connexion. + /// private List usersConnexion; + + /// + /// Service HTTP pour effectuer des requêtes. + /// [Inject] public HttpClient Http { get; set; } + /// + /// Service de gestion de la navigation dans l'application Blazor. + /// [Inject] public NavigationManager NavigationManager { get; set; } + /// + /// Méthode appelée lors de l'initialisation du composant pour charger les données des utilisateurs. + /// + /// Une tâche asynchrone représentant l'initialisation du composant. protected override async Task OnInitializedAsync() { + // Chargement des utilisateurs depuis un fichier JSON simulé. usersConnexion = await Http.GetFromJsonAsync>($"{NavigationManager.BaseUri}fake-dataUserLogin.json"); - } - + /// + /// Méthode pour valider les informations de connexion de l'utilisateur. + /// public void validlogin() { + // Vérification si les informations de connexion sont renseignées if (!string.IsNullOrEmpty(userLogin.Name) || !string.IsNullOrEmpty(userLogin.Mdp)) { foreach (var user in usersConnexion) { - if(userLogin.Name == user.Name && userLogin.Mdp == user.Mdp) + // Vérification si les identifiants correspondent + if (userLogin.Name == user.Name && userLogin.Mdp == user.Mdp) { - if(user.IsAdmin) + // Vérification si l'utilisateur est un administrateur + if (user.IsAdmin) { + // Assignation de l'utilisateur à la session uLogin.Id = userLogin.Id; uLogin.Name = user.Name; uLogin.Image = user.Image; - + + // Redirection vers la page d'accueil NavigationManager.NavigateTo(NavigationManager.BaseUri + "accueil"); return; - } else { + // Message d'erreur pour utilisateur non admin ErrorConnexion = "Connexion échouée, le nom ou le mot de passe sont incorrectes"; } - } else { + // Message d'erreur pour informations invalides ErrorConnexion = "Connexion échouée, le nom ou le mot de passe sont incorrectes"; } } - } - } } -} \ No newline at end of file +} diff --git a/WF-WebAdmin/WF-WebAdmin/Pages/ModifQuiz.razor.cs b/WF-WebAdmin/WF-WebAdmin/Pages/ModifQuiz.razor.cs index 9da2e68..7f900c0 100644 --- a/WF-WebAdmin/WF-WebAdmin/Pages/ModifQuiz.razor.cs +++ b/WF-WebAdmin/WF-WebAdmin/Pages/ModifQuiz.razor.cs @@ -5,25 +5,56 @@ using WF_WebAdmin.Service; namespace WF_WebAdmin.Pages { + /// + /// Composant Blazor pour la gestion des quiz, permettant leur modification et suppression. + /// public partial class ModifQuiz { + /// + /// Liste des quiz à afficher dans le tableau. + /// private Quiz[] quiz; + /// + /// Valeur maximale d'éléments par page. + /// private int MaxValue = 5; + /// + /// Nombre total d'éléments dans la liste des quiz. + /// private int totalItem; + /// + /// Indicateur de l'affichage de la popup de modification du quiz. + /// private bool showEditQuiz = false; + /// + /// Quiz actuellement sélectionné pour modification. + /// private Quiz? selectedQuiz; + /// + /// Indicateur de l'affichage de la popup de suppression. + /// private bool showPopupDelete = false; + /// + /// Numéro de la page actuellement affichée. + /// private int page = 1; + /// + /// Service pour gérer les quiz injecté. + /// [Inject] public IQuizService QuizService { get; set; } + /// + /// Méthode appelée pour récupérer les données de la page actuelle dans le tableau. + /// + /// Arguments de lecture de données pour le DataGrid. private async Task OnReadData(DataGridReadDataEventArgs e) { if (e.CancellationToken.IsCancellationRequested) @@ -41,6 +72,10 @@ namespace WF_WebAdmin.Pages } } + /// + /// Méthode pour afficher la popup de modification d'un quiz. + /// + /// Quiz à modifier. private void OnEditButtonClicked(Quiz quiz) { if (quiz == null) return; @@ -48,6 +83,9 @@ namespace WF_WebAdmin.Pages showEditQuiz = true; } + /// + /// Méthode pour fermer la popup (modification ou suppression). + /// private void ClosePopup() { showEditQuiz = false; @@ -55,19 +93,32 @@ namespace WF_WebAdmin.Pages selectedQuiz = null; } + /// + /// Méthode pour modifier un quiz sélectionné. + /// private async Task EditQuiz() { - await QuizService.updateQuiz(selectedQuiz); - selectedQuiz = null; - ClosePopup(); + if (selectedQuiz != null) + { + await QuizService.updateQuiz(selectedQuiz); + selectedQuiz = null; + ClosePopup(); + } } + /// + /// Méthode pour afficher la popup de suppression d'un quiz. + /// + /// Quiz à supprimer. private void OnDelete(Quiz q) { selectedQuiz = q; showPopupDelete = true; } + /// + /// Méthode pour supprimer un quiz sélectionné. + /// private async void RemoveQuote() { if (selectedQuiz != null) @@ -77,7 +128,7 @@ namespace WF_WebAdmin.Pages var response = await QuizService.getSommeQuiz(MaxValue, page); quiz = response.ToArray(); } - showPopupDelete= false; + showPopupDelete = false; } } } diff --git a/WF-WebAdmin/WF-WebAdmin/Pages/ModifQuote.razor.cs b/WF-WebAdmin/WF-WebAdmin/Pages/ModifQuote.razor.cs index d010106..84a0fc2 100644 --- a/WF-WebAdmin/WF-WebAdmin/Pages/ModifQuote.razor.cs +++ b/WF-WebAdmin/WF-WebAdmin/Pages/ModifQuote.razor.cs @@ -5,25 +5,51 @@ using WF_WebAdmin.Service; namespace WF_WebAdmin.Pages { + /// + /// Composant Blazor pour la gestion des citations, permettant la modification et la suppression de celles-ci. + /// public partial class ModifQuote { + /// + /// Liste des citations à afficher dans le tableau. + /// private Quote[] quotes; + /// + /// Valeur maximale d'éléments par page. + /// private int MaxValue = 5; + /// + /// Nombre total d'éléments dans la liste des citations. + /// private int totalItem; - /*private bool showEditQuote = false;*/ - + /// + /// Citation actuellement sélectionnée pour modification. + /// private Quote? selectedQuote; + /// + /// Indicateur de l'affichage de la popup de suppression. + /// private bool showPopupDelete = false; + /// + /// Numéro de la page actuellement affichée. + /// private int page = 1; + /// + /// Service pour gérer les citations injecté. + /// [Inject] public IQuoteService QuoteService { get; set; } + /// + /// Méthode appelée pour récupérer les données de la page actuelle dans le tableau. + /// + /// Arguments de lecture de données pour le DataGrid. private async Task OnReadData(DataGridReadDataEventArgs e) { if (e.CancellationToken.IsCancellationRequested) @@ -41,33 +67,28 @@ namespace WF_WebAdmin.Pages } } - /*private void OnEditButtonClicked(Quote quote) - { - if (selectedQuote == null) return; - selectedQuote = quote; - showEditQuote = true; - }*/ - + /// + /// Méthode pour fermer la popup (modification ou suppression). + /// private void ClosePopup() { - /*showEditQuote = false;*/ showPopupDelete = false; selectedQuote = null; } - /*private async Task EditQuote() - { - await QuoteService.updateQuote(selectedQuote); - selectedQuote = null; - ClosePopup(); - }*/ - + /// + /// Méthode appelée pour afficher la popup de suppression d'une citation. + /// + /// Citation à supprimer. private void OnDelete(Quote q) { selectedQuote = q; showPopupDelete = true; } + /// + /// Méthode pour supprimer une citation sélectionnée. + /// private async void RemoveQuote() { if (selectedQuote != null) diff --git a/WF-WebAdmin/WF-WebAdmin/Pages/ValidQuiz.razor.cs b/WF-WebAdmin/WF-WebAdmin/Pages/ValidQuiz.razor.cs index 2c2beec..d8484d4 100644 --- a/WF-WebAdmin/WF-WebAdmin/Pages/ValidQuiz.razor.cs +++ b/WF-WebAdmin/WF-WebAdmin/Pages/ValidQuiz.razor.cs @@ -5,34 +5,59 @@ using WF_WebAdmin.Service; namespace WF_WebAdmin.Pages { + /// + /// Composant Blazor pour gérer la validation des quiz. + /// public partial class ValidQuiz { + /// + /// Liste des quiz à valider. + /// private List quizzes; - + /// + /// Client HTTP injecté pour effectuer des requêtes API. + /// [Inject] public HttpClient Http { get; set; } + /// + /// Gestionnaire de navigation injecté pour gérer les URL. + /// [Inject] public NavigationManager NavigationManager { get; set; } - + + /// + /// Service pour gérer les quiz injecté. + /// [Inject] public IQuizService QuizService { get; set; } + /// + /// Méthode appelée lors de l'initialisation du composant. Charge la liste des quiz à valider. + /// protected override async Task OnInitializedAsync() { quizzes = await QuizService.getQuizzesToValidate(); } + /// + /// Méthode appelée lorsqu'on clique sur le bouton de validation d'un quiz. + /// + /// Le quiz à valider. private void OnValidButton(Quiz quiz) { ValidateQuiz(quiz); } + /// + /// Valide un quiz en mettant à jour son état. + /// + /// Le quiz à valider. private void ValidateQuiz(Quiz quiz) { Console.WriteLine($"Quiz {quiz.Id} validated!"); - + Quiz newQuiz = quiz; newQuiz.IsValid = true; @@ -40,11 +65,19 @@ namespace WF_WebAdmin.Pages QuizService.updateQuiz(quiz); } + /// + /// Méthode appelée lorsqu'on clique sur le bouton de rejet d'un quiz. + /// + /// Le quiz à rejeter. private void OnRejectButton(Quiz quiz) { RejectQuiz(quiz); } + /// + /// Rejette un quiz en supprimant son état de validation. + /// + /// Le quiz à rejeter. private void RejectQuiz(Quiz quiz) { Console.WriteLine($"Quiz {quiz.Id} rejected!"); @@ -52,4 +85,4 @@ namespace WF_WebAdmin.Pages QuizService.removeQuiz(quiz.Id); } } -} \ No newline at end of file +} diff --git a/WF-WebAdmin/WF-WebAdmin/Pages/ValidQuote.razor.cs b/WF-WebAdmin/WF-WebAdmin/Pages/ValidQuote.razor.cs index 95b04d5..df2b1ea 100644 --- a/WF-WebAdmin/WF-WebAdmin/Pages/ValidQuote.razor.cs +++ b/WF-WebAdmin/WF-WebAdmin/Pages/ValidQuote.razor.cs @@ -9,16 +9,31 @@ using System.Linq; namespace WF_WebAdmin.Pages { + /// + /// Composant Blazor pour afficher et valider des citations. + /// public partial class ValidQuote - { + { + /// + /// Tableau contenant les citations à valider. + /// private Quote[] quotes; + /// + /// Client HTTP injecté pour effectuer des requêtes API. + /// [Inject] public HttpClient Http { get; set; } + /// + /// Gestionnaire de navigation injecté pour gérer les URL. + /// [Inject] public NavigationManager NavigationManager { get; set; } + /// + /// Méthode appelée à l'initialisation du composant pour charger les citations. + /// protected override async Task OnInitializedAsync() { quotes = await Http.GetFromJsonAsync($"{NavigationManager.BaseUri}fake-dataQuote.json");