using Newtonsoft.Json; using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Model { public class Banque : INotifyPropertyChanged { public event PropertyChangedEventHandler PropertyChanged; public string Nom { get; private set; } /// /// UrlSite sert à identifier l'URL du site de la banque. /// public string UrlSite { get; private set; } /// /// UrlLogo sert à obtenir le logo de la banque. /// public string UrlLogo { get; private set; } public List ListeDesComptes { get => listeDesComptes; set { if (listeDesComptes != value) { listeDesComptes = value; OnPropertyChanged(nameof(ListeDesComptes)); } } } private List listeDesComptes = new List(); [JsonConstructor] public Banque(string nom, string urlSite, string urlLogo) { Nom = nom; UrlSite = urlSite; UrlLogo = urlLogo; } public Banque(string nom, string urlSite, string urlLogo, List lescomptes) : this(nom,urlSite, urlLogo) { ListeDesComptes = lescomptes; } void OnPropertyChanged(string propertyName) => PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); public void AjouterCompte(Compte compte) { ListeDesComptes.Add(compte); } /// /// Permet de supprimer un compte à ListeDesComptes /// /// Représente le compte qui doit être supprimer de ListeDesComptes. public void SupprimerCompte(Compte compte) { ListeDesComptes.Remove(compte); } /// /// Permet de vérifier si un compte dont le nom est passé en paramètre existe bien dans ListeDesComptes. /// /// Nom du compte dont on souhaite savoir si il est présent dans ListeDesComptes. /// Boolean égale à True si le compte existe dans la liste. public bool ExisteCompte(string s) { foreach (Compte compte in ListeDesComptes) { if (compte.Nom.Equals(s)) return true; } return false; } /// /// Permet d'obtenir le compte dont le nom est passé en paramètre dans la ListeDesComptes. /// /// Nom du compte que l'on souhaite retourner. /// L'objet de type compte que l'on souhaite retourner. public Compte ReturnCompte(string s) { foreach (Compte compte in ListeDesComptes) { if (compte.Nom.Equals(s)) return compte; } throw new KeyNotFoundException(); } public override string ToString() { return Nom + " " + UrlSite + " " + UrlLogo; } } }