From 46866c3154f8800ae61b91fb6e2a70b0c863a34b Mon Sep 17 00:00:00 2001 From: Siwa12100 Date: Wed, 17 Jan 2024 13:41:01 +0100 Subject: [PATCH] correction d'un bug sur la modification d'utilisateurs --- .../formulaires/FormulaireAjout.razor.cs | 4 +- .../FormulaireModification.razor.cs | 6 ++- .../modeles/FormulaireAjoutModele.cs | 9 ++++- .../PseudoCorrectAttribute.cs | 39 +++++++++++++++++++ 4 files changed, 53 insertions(+), 5 deletions(-) create mode 100644 VeraxShield/VeraxShield/composants/formulaires/modeles/attributsValidationCustoms/PseudoCorrectAttribute.cs diff --git a/VeraxShield/VeraxShield/composants/formulaires/FormulaireAjout.razor.cs b/VeraxShield/VeraxShield/composants/formulaires/FormulaireAjout.razor.cs index 0a9e0dc..1eaf185 100644 --- a/VeraxShield/VeraxShield/composants/formulaires/FormulaireAjout.razor.cs +++ b/VeraxShield/VeraxShield/composants/formulaires/FormulaireAjout.razor.cs @@ -1,6 +1,7 @@ using System.Runtime.InteropServices; using Microsoft.AspNetCore.Components; using VeraxShield.composants.formulaires.modeles; +using VeraxShield.composants.formulaires.modeles.attributsValidationCustoms; using VeraxShield.factories; using VeraxShield.modele.utilisateurs; using VeraxShield.services.UtilisateursDataService; @@ -12,7 +13,7 @@ namespace VeraxShield.composants.formulaires [Inject] private NavigationManager NavigationManager { get; set; } - private FormulaireAjoutModele Modele { get; set; } + public FormulaireAjoutModele Modele { get; set; } [Inject] private IUtilisateursDataService utilisateursDataService { get; set; } @@ -24,6 +25,7 @@ namespace VeraxShield.composants.formulaires protected override async Task OnInitializedAsync() { + //PseudoCorrectAttribute.Initialiser(await this.utilisateursDataService.getAllUtilisateurs()); this.Modele = new FormulaireAjoutModele(); this.Modele.IsBan = false; diff --git a/VeraxShield/VeraxShield/composants/formulaires/FormulaireModification.razor.cs b/VeraxShield/VeraxShield/composants/formulaires/FormulaireModification.razor.cs index a29d891..918bc84 100644 --- a/VeraxShield/VeraxShield/composants/formulaires/FormulaireModification.razor.cs +++ b/VeraxShield/VeraxShield/composants/formulaires/FormulaireModification.razor.cs @@ -1,6 +1,7 @@ using Blazorise; using Microsoft.AspNetCore.Components; using VeraxShield.composants.formulaires.modeles; +using VeraxShield.composants.formulaires.modeles.attributsValidationCustoms; using VeraxShield.factories; using VeraxShield.modele.utilisateurs; using VeraxShield.services.UtilisateursDataService; @@ -25,10 +26,11 @@ namespace VeraxShield.composants.formulaires protected override async Task OnParametersSetAsync() { - + //PseudoCorrectAttribute.Initialiser(await this.utilisateursDataService.getAllUtilisateurs()); + if (this.Utilisateur != null) { - //Utilisateur temp = new Utilisateur(" ", " ", " ", " ", " ", " ", true); + Utilisateur temp = new Utilisateur(" ", " ", " ", " ", " ", " ", true); this.Modele = UtilisateursFactory.toModele(this.Utilisateur); } else { diff --git a/VeraxShield/VeraxShield/composants/formulaires/modeles/FormulaireAjoutModele.cs b/VeraxShield/VeraxShield/composants/formulaires/modeles/FormulaireAjoutModele.cs index 9bff790..78636c2 100644 --- a/VeraxShield/VeraxShield/composants/formulaires/modeles/FormulaireAjoutModele.cs +++ b/VeraxShield/VeraxShield/composants/formulaires/modeles/FormulaireAjoutModele.cs @@ -1,4 +1,8 @@ using System.ComponentModel.DataAnnotations; +using Microsoft.AspNetCore.Components; +using VeraxShield.composants.formulaires.modeles.attributsValidationCustoms; +using VeraxShield.modele.utilisateurs; +using VeraxShield.services.UtilisateursDataService; namespace VeraxShield.composants.formulaires.modeles { @@ -6,8 +10,9 @@ namespace VeraxShield.composants.formulaires.modeles { [Required] [StringLength(20, ErrorMessage = "Le pseudo ne doit pas dépasser 20 caractères !")] - [RegularExpression("^[a-zA-Z0-9]+$", ErrorMessage = "Le pseudo doit contenir uniquement des caractères alphanumériques.")] - public String Pseudo { get; set; } + [RegularExpression("^[a-zA-Z0-9_]+$", ErrorMessage = "Le pseudo contient des caractères interdits.")] + // [PseudoCorrect] + public string Pseudo { get; set; } [Required] [StringLength(20, ErrorMessage = "Le nom ne doit pas dépasser 20 caractères !")] diff --git a/VeraxShield/VeraxShield/composants/formulaires/modeles/attributsValidationCustoms/PseudoCorrectAttribute.cs b/VeraxShield/VeraxShield/composants/formulaires/modeles/attributsValidationCustoms/PseudoCorrectAttribute.cs new file mode 100644 index 0000000..4e78c57 --- /dev/null +++ b/VeraxShield/VeraxShield/composants/formulaires/modeles/attributsValidationCustoms/PseudoCorrectAttribute.cs @@ -0,0 +1,39 @@ +using System.ComponentModel.DataAnnotations; +using Microsoft.AspNetCore.Components; +using VeraxShield.modele.utilisateurs; +using VeraxShield.services.UtilisateursDataService; + +namespace VeraxShield.composants.formulaires.modeles.attributsValidationCustoms +{ + public class PseudoCorrectAttribute : ValidationAttribute + { + public static List TouslesUtilisateurs {get; set;} + + + protected override ValidationResult? IsValid(object? value, ValidationContext validationContext) + { + bool pseudoExisteDeja = false; + var pseudo = (string)value; + + foreach (Utilisateur u in PseudoCorrectAttribute.TouslesUtilisateurs) + { + if (u.Pseudo == pseudo) + { + pseudoExisteDeja = true; + } + } + + if (pseudoExisteDeja) + { + return new ValidationResult("Le pseudo existe deja, choississez en un autre."); + } + + return ValidationResult.Success; + } + + public static void Initialiser(List liste) + { + PseudoCorrectAttribute.TouslesUtilisateurs = liste; + } + } +} \ No newline at end of file