You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

175 lines
6.2 KiB

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
{
/// <summary>
/// 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
/// </summary>
[DataContract]
public class Expert : Personne
{
/// <summary>
/// DateTime qui permet de connaitre la date de création x'un compte expert
/// </summary>
[DataMember]
public DateTime DateD { get; private set; }
/// <summary>
/// /String le surnom d'un expert
/// </summary>
[DataMember]
public string Surnom { get; private set; }
/// <summary>
/// Constructeur sans DateTime
/// </summary>
/// <param name="email">String email de l'Expert (son identifiant pour se connecter</param>
/// <param name="mdp"> String le mot de passe de l'Expert</param>
/// <param name="surnom">String surnom de l'Expert</param>
public Expert(string email, string mdp, string surnom) : base(email, mdp)
{
Surnom = surnom;
DateD = DateTime.Now;
}
/// <summary>
/// Constructeur avec DateTime
/// </summary>
/// <param name="email">String email de l'Expert (son identifiant pour se connecter</param>
/// <param name="mdp"> String le mot de passe de l'Expert</param>
/// <param name="surnom">String surnom de l'Expert</param>
/// <param name="date">Date de création du compte Expert</param>
public Expert(string email, string mdp, string surnom, DateTime date) : base(email, mdp)
{
Surnom = surnom;
DateD = date;
}
/// <summary>
/// Méthode ToString de la classe Expert
/// </summary>
public override string ToString()
{
return Email + " " + " " + Surnom + " " + DateD;
}
/// <summary>
/// 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
/// </summary>
/// <param name="lBdPasFinie">List de Requin qui est la list contenant tout les requins ajoutés par des Utilisateurs</param>
/// <param name="lBdFinie">List de Requin qui est la list contenant tout les requins validés par les experts</param>
/// <returns>Int : Le nombre changement validé</returns>
public int ValiderSubmit(List<Requin> lBdFinie, List<Requin> lBdPasFinie)
{
int i=0;
string rep;
List<Requin> nv = new List<Requin>();
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;
}
/// <summary>
/// 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
/// </summary>
/// <param name="lBdPasfinie">List de Requin qui est la list contenant tout les requins ajoutés par des Utilisateurs</param>
/// <param name="lBdFinie">List de Requin qui est la list contenant tout les requins validés par les experts</param>
/// <returns>Int : Le nombre changement validé</returns>
public int ValiderUnChangement(List<Requin> lBdFinie, List<Requin> lBdPasfinie)
{
int i = 0;
string rep;
List<Requin> nv = new List<Requin>();
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;
}
/// <summary>
/// Méthode Equals de la Class Expert qui permet de savoir si deux experts sont égaux, regarde en fonction des emails
/// </summary>
/// <param name="e">Expert</param>
/// <returns>Booléen : true si elles sont égales, false si elles sont différentes</returns>
public bool Equals(Expert e)
{
return Email == e.Email;
}
/// <summary>
/// Méthode qui permet d'ajouter un Requin dans une ObservableCollection de Requin
/// </summary>
/// <param name="req">Requin qui va être ajouté dans l'observable collection</param>
/// <param name="requins">ObservableCollection de Requin l'ObservableCollection dans laquelle on ajoute le Requin</param>
public override void AjouterRequin(Requin req, ObservableCollection<Requin> requins)
{
requins.Add(req);
}
/// <summary>
/// Méthode qui permet de changer le mot de passe de l'Expert
/// </summary>
/// <param name="nvMdp">String nouveau mot de passe de l'Expert</param>
public override void ChangerMotDePasse(string nvMdp)
{
MotDePasse = nvMdp;
}
}
}