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;
}
/* public Banque()
{
}
*/
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;
}
}
}