using System.ComponentModel;
namespace Model
{
///
/// Permet de faire le lien entre le modèle et la base de donnée..
///
public class Manager : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
public IPersistanceManager Pers { get; private set; }
///
/// L'inscrit chargé venant de la base de donnée.
///
public string SelectedInscrit { get; set; }
///
/// Permet d'utiliser les fonctions de hachage.
///
public Hash hash = new Hash();
public Banque SelectedBanque
{
get => selectedBanque;
set
{
if(selectedBanque != value)
{
selectedBanque = value;
OnPropertyChanged(nameof(selectedBanque));
}
}
}
private Banque selectedBanque;
///
/// A compléter
///
///
void OnPropertyChanged(string propertyName) => PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
public Manager(IPersistanceManager persistance)
{
Pers = persistance;
}
///
/// Permet la supression d'un inscrit de la base de donnée.
///
/// L'inscrit devant être supprimé de la base de donnée.
public void SupprimerInscritBdd(Inscrit i)
{
Pers.SupprimerInscritBdd(i);
}
///
/// Permet de charger un inscrit de la base de donnée et le place dans SelectedInscrit.
///
/// L'identifiant de l'inscrit devant être chargé.
/// Le mot de passe de l'inscrit devant être chargé.
public void LoadInscrit(string id, string mdp)
{
SelectedInscrit = Pers.LoadInscrit(id, mdp);
}
///
/// Permet de supprimer toute les banques de la base de donnée pour un inscrit placé en paramètre
///
/// L'inscrit pour lequel toute les banques doivent être supprimé.
public void supprimerToutesBanquesBdd(Inscrit inscrit)
{
Pers.SupprimerToutesBanquesBdd(inscrit);
}
///
/// Ajoute un inscrit dans la base de donnée
///
/// L'inscrit devant être stocké dans la base de donnée.
public void createInscrit(Inscrit inscrit)
{
Pers.CreateInscrit(inscrit);
}
///
/// A complété
///
///
public string lastInscrit()
{
return Pers.LastInscrit();
}
///
/// Cherche à vérifier si le mail posté en paramètre existe dans la base de donnée
///
/// Mail posté par la personne.
/// Renvoie true si le mail est bien stocké dans la base de donnée
public bool existEmail(string mail)
{
return Pers.ExistEmail(mail);
}
///
/// Permet de changer le mot de passe dans la base de donnée pour la mail placé en paramètre.
///
/// Mail posté par la personne.
/// Nouveau mot de passe devant être stocké dans la base de donnée
public void changePasswordBdd(string mail, string newMdp)
{
Pers.ChangePasswordBdd(mail, newMdp);
}
///
/// Permet d'obtenir le mot de passe dans la base de donnée d'un mail donnée.
///
/// Mail pour laquel on souhaite obtenir le mot de passe.
/// Renvoie le mot de passe haché recherché.
public string recupMdpBdd(string mail)
{
return Pers.RecupMdpBdd(mail);
}
///
/// Permet de comparer un mot de passe de la base de donnée avec un mot de passe posté par l'utilisateur.
///
/// Représente le mot de passe haché de la base de donnée.
/// Représente le mot de passe posté par l'utilisateur.
/// Retourne un booleen égale à True si les deux mots de passe sont les mêmes
public bool isEqualHash(string mdpBdd, string mdpSent)
{
return hash.IsEqualHash(mdpBdd, mdpSent);
}
}
}