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. } }