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");