using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Linq; using System.Runtime.Serialization; using System.Text; using System.Threading.Tasks; namespace Modèle { /// /// Class Expert qui implémente l'interface Personne /// Un expert peut ajouter et modifier des requins mais il peut aussi valider ou refuser les ajouts ou les modifications des utilisateurs /// [DataContract] public class Expert : Personne { [DataMember] public DateTime DateD { get; private set; } //DateTime qui permet de connaitre la date de création x'un compte expert [DataMember] public string Surnom { get; private set; } //String le surnom d'un expert /// /// Constructeur sans DateTime /// /// String email de l'Expert (son identifiant pour se connecter /// String le mot de passe de l'Expert /// String surnom de l'Expert public Expert(string email, string mdp, string surnom) : base(email, mdp) { Surnom = surnom; DateD = DateTime.Now; } /// /// Constructeur avec DateTime /// /// String email de l'Expert (son identifiant pour se connecter /// String le mot de passe de l'Expert /// String surnom de l'Expert /// Date de création du compte Expert public Expert(string email, string mdp, string surnom, DateTime date) : base(email, mdp) { Surnom = surnom; DateD = date; } /// /// Méthode ToString de la classe Expert /// public override string ToString() { return Email + " " + " " + Surnom + " " + DateD; } /// /// Méthode de test lors de la création de la class Expert qui permettait de valider ou de refuser des requins ajoutés par les utilisateurs /// /// List qui est la list contenant tout les requins ajoutés par des Utilisateurs /// List qui est la list contenant tout les requins validés par les experts /// Int : Le nombre changement validé public int ValiderSubmit(List lBdFinie, List lBdPasFinie) { int i=0; string rep; List nv = new List(); foreach (Requin r in lBdPasFinie) { nv.Add(r); } foreach (Requin r in nv) { Console.WriteLine(r); Console.WriteLine("Voulez vous ajoutez ce requin à la base de données des requins ? (y/n)"); rep = Console.ReadLine(); while (rep!="n" && rep != "y") { Console.WriteLine("Erreur de saisie (y/n)"); rep = Console.ReadLine(); } if (rep == "y") { lBdFinie.Add(r); i++; } lBdPasFinie.Remove(r); } return i; } /// /// Méthode de test lors de la création de la class Expert qui permettait de valider ou de refuser des requins édités par les utilisateurs /// /// List qui est la list contenant tout les requins ajoutés par des Utilisateurs /// List qui est la list contenant tout les requins validés par les experts /// Int : Le nombre changement validé public int ValiderUnChangement(List lBdFinie, List lBdPasfinie) { int i = 0; string rep; List nv = new List(); foreach (Requin r in lBdPasfinie) { nv.Add(r); } foreach (Requin r in nv) { Console.WriteLine(r); Console.WriteLine("Voulez vous ajoutez ce requin à la base de données des requins ? (y/n)"); rep = Console.ReadLine(); while (rep != "n" && rep != "y") { Console.WriteLine("Erreur de saisie (y/n)"); rep = Console.ReadLine(); } if (rep == "y") { lBdFinie.Remove(r); lBdFinie.Add(r); i++; } lBdPasfinie.Remove(r); } return i; } /// /// Méthode Equals de la Class Expert qui permet de savoir si deux experts sont égaux, regarde en fonction des emails /// /// Expert /// Booléen : true si elles sont égales, false si elles sont différentes public bool Equals(Expert e) { return Email == e.Email; } /// /// Méthode qui permet d'ajouter un Requin dans une ObservableCollection de Requin /// /// Requin qui va être ajouté dans l'observable collection /// ObservableCollection l'ObservableCollection dans laquelle on ajoute le Requin public override void AjouterRequin(Requin req, ObservableCollection requins) { requins.Add(req); } /// /// Méthode qui permet de changer le mot de passe de l'Expert /// /// String nouveau mot de passe de l'Expert public override void ChangerMotDePasse(string nvMdp) { MotDePasse = nvMdp; } } }