namespace Model
{
///
/// Permet de créer et gérer des objets de type compte.
///
public class Compte
{
///
/// Représente le nom du compte.
///
public string Nom { get; private set; }
///
/// Représente le solde présent sur ce compte.
///
public double Solde { get; private set; }
///
/// Liste de toutes les opérations présent sur ce compte.
///
public List LesOpe { get; private set; } = new List();
///
/// Liste de toutes les planifications présent sur ce compte.
///
public List LesPla { get; private set; } = new List();
///
/// Liste de toutes les échéanciers présent sur ce compte.
///
public List LesEch { get; private set; } = new List();
public Compte(string nom, double solde)
{
Nom = nom;
Solde = solde;
LesOpe = new List();
LesPla = new List();
LesEch = new List();
}
public Compte(string nom, double solde, List lesOpe)
{
Nom = nom;
Solde = solde;
LesOpe = lesOpe;
}
public Compte(string nom, double solde, List lesOpe, List lesPla)
{
Nom = nom;
Solde = solde;
LesOpe = lesOpe;
LesPla = lesPla;
}
public Compte(string nom, double solde, List lesOpe, List lesPla, List lesEch)
{
Nom = nom;
Solde = solde;
LesOpe = lesOpe;
LesPla = lesPla;
LesEch = lesEch;
}
///
/// Permet de modifier le solde présent sur le compte.
///
/// Nouvelle quantité d'argent présent sur le compte.
public void modifierSolde(double s)
{
Solde = s;
}
///
/// Sert à ajouter une opération à la liste LesOpe
///
/// Objet de type operation à ajouter à la liste
/// Déclenchée quand l'opération placé en paramètre est nulle.
public void ajouterOperation(Operation o)
{
if (o == null) throw new NullReferenceException();
LesOpe.Add(o);
}
public void cacherOperation(Operation o)
{
throw new NotImplementedException();
}
///
/// Permet de supprimer une operation de la liste LesOpe
///
/// Objet de type operation devant être supprimé de la liste
public void supprimerOperation(Operation o)
{
LesOpe.Remove(o);
}
///
/// Sert à ajouter une echenance à la liste LesEch
///
/// Objet de type échéance à ajouter à la liste
/// Déclenchée quand l'opération placé en paramètre est nulle.
public void ajoutEcheance(Echeance e)
{
if(e == null) throw new NullReferenceException();
LesEch.Add(e);
}
///
/// Permet de supprimer une echeance de la liste LesEch
///
/// Objet de type echeance devant être supprimé de la liste
public void supprimerEcheance(Echeance e)
{
LesEch.Remove(e);
}
///
/// Sert à ajouter une planification à la liste LesPla
///
/// Objet de type planification à ajouter à la liste
/// Déclenchée quand l'opération placé en paramètre est nulle.
public void ajoutPlanification(Planification p)
{
if(p == null) throw new NullReferenceException();
LesPla.Add(p);
}
///
/// Permet de supprimer une planification de la liste LesPla
///
/// Objet de type planification devant être supprimé de la liste
public void supprimerPlanification(Planification p)
{
LesPla.Remove(p);
}
///
/// Permet de rédéfinir la méthode Equals en comparant le type des 2 objets.
///
/// L'objet dont on souhaite savoir s'il est de type compte
public override bool Equals(object obj)
{
if (obj == null || GetType() != obj.GetType())
{
return false;
}
return base.Equals(obj);
}
public override int GetHashCode()
{
return base.GetHashCode();
}
/// Si quelqu'un à le temps, utiliser des templates pour améliorer la qualité du code.
}
}