Skip to content

Les éléments bancaires

Christophe LEMOINE edited this page Jun 30, 2021 · 13 revisions

Sommaire

L'élément bancaire

Kotlib.Objects.Account.cs

L'élément bancaire par défaut

Account représente un élément bancaire. C'est l'objet de base dont hérite les suivants. Il permet aussi à l'utilisateur de créer son propre type d'élément bancaire.

Account(string name, Identity owner)

Propriétés

  • AllowedCredit decimal : Montant du découvert autorisé. Montant positif.
  • Id Guid : Identifiant unique.
  • InitialAmount decimal : Solde initial à la création de cet élément bancaire.
  • Name string : Dénomination de l'élément bancaire.
  • Note string : Informations complémentaires libres.
  • Operations OperationList : Liste des opérations associées.
  • Owner Identity : Identité du propriétaire.
  • PartialAmount decimal : Retourne le solde total des opérations associées.
  • Paytypes PaytypeList : Liste des moyens de paiements associés.

Méthodes

  • decimal PartialAmountAt(DateTime date, bool addInitialAmount = true) : Calcule le solde des opérations liées à la date souhaitée, incluant ou non le solde initial.

Utilisation

var me = new Identity(name: "Ma carte d'identité")
{
    Address = "1 rue des mimosas, 12345 Borne",
    Forname = "Christophe",
    Lastname = "Lemoine",
    Mail = "pantaflex@tuta.io",
    Note = "Born to be code",
    Phone = "0102030405",
    Url = "https://pantaflex44.me"
};

var account = new Account(name: "Mon élément bancaire",
                          owner: me)
{
	AllowedCredit = 200m,
	InitialAmount = 1300m,
	Note = "Compte principal",
	Owner = me,
	Operations = OperationList.Empty,
	Paytypes = PaytypeList.Defaults				
};

Le compte bancaire

BankAccount est dérivé de Account et représente un compte bancaire.

BankAccount(string name, Identity owner)

Propriétés

  • BankName string : Nom de l'organisme bancaire.
  • Bic string : Code BIC.
  • Contact Identity : Identité du contact ou conseiller financier.
  • Iban string : Numéro IBAN.

Utilisation

var me = new Identity(name: "Ma carte d'identité")
{
    Address = "1 rue des mimosas, 12345 Borne",
    Forname = "Christophe",
    Lastname = "Lemoine",
    Mail = "pantaflex@tuta.io",
    Note = "Born to be code",
    Phone = "0102030405",
    Url = "https://pantaflex44.me"
};

var bankaccount = new BankAccount(name: "Mon compte en banque",
                                  owner: me)
{
	AllowedCredit = 200m,
	InitialAmount = 1300m,
	Note = "Compte chèque",
	Owner = me,
	Operations = OperationList.Empty,
	Paytypes = new PaytypeList(new List<Paytype>()
	                           {
	                           		new BankCard(name: "Ma carte bancaire")
	                           		{
	                           			Number = "5135 1800 0000 0001",
	                           			CVV = "123",
	                           			Date = new CardDate(2025, 12)
	                           		},
	                           		new Check(name: "Mon chéquier")
	                           }),
	BankName = "CIC",
	Iban = "FR76 5896 1234 5678 9012 3456 789",
	Bic = "CMCIFRPP",
	Contact = new Identity(name: "Mon conseiller")
	{
	    Address = "586 route de la soif, 98745 Rennes",
	    Forname = "Jean",
	    Lastname = "Martin",
	    Mail = "j.martin@cic.org",
	    Phone = "0102030405"
	}
};

La carte de paiements

Paycard est dérivée de Account et représente une carte de paiement autonome (PCS, etc.)

Paycard(string name, Identity owner, BankCard card)

Propriétés

  • Card BankCard : Informations de la carte de paiement.

Utilisation

var me = new Identity(name: "Ma carte d'identité")
{
    Address = "1 rue des mimosas, 12345 Borne",
    Forname = "Christophe",
    Lastname = "Lemoine",
    Mail = "pantaflex@tuta.io",
    Note = "Born to be code",
    Phone = "0102030405",
    Url = "https://pantaflex44.me"
};

var paycard = new Paycard(name: "Ma carte de paiement",
                          owner: me,
                          card: new BankCard(name: "N26")
                          {
                          	Number = "5135 1800 0000 0001",
	                        CVV = "123",
	                        Date = new CardDate(2025, 12)
                          })
{
	AllowedCredit = 0m,
	InitialAmount = 2500m,
	Note = "Compte N26",
	Owner = me,
	Operations = OperationList.Empty,
	Paytypes = PaytypeList.Empty
};

Le portefeuille d'espèces

Wallet est dérivé de Account et représente un porte monnaie, le fond d'une poche ou les économies sous le matelas de mamie.

Wallet(string name, Identity owner)

Propriétés

  • Electronic bool : Portefeuille électronique.
  • AllowedCredit decimal : Non autorisé.

Utilisation

var me = new Identity(name: "Ma carte d'identité")
{
    Address = "1 rue des mimosas, 12345 Borne",
    Forname = "Christophe",
    Lastname = "Lemoine",
    Mail = "pantaflex@tuta.io",
    Note = "Born to be code",
    Phone = "0102030405",
    Url = "https://pantaflex44.me"
};

var wallet = new Wallet(name: "Mon portefeuille d'espèces",
                        owner: me)
{
	InitialAmount = 10m,
	Note = "Le fond de ma poche",
	Owner = me,
	Operations = OperationList.Empty,
	Paytypes = PaytypeList.Empty,
	Electronic = false
};

Liste des éléments bancaires

Kotlib.Objects.AccountList.cs

AccountList représente une liste de type base Account. Elle permet la gestion complète de cette liste, et possède des fonctionnalités qui lui sont propres.

AccountList est dérivée de ObjectList.

AccountList(IEnumerable<Account> items)

Propriétés

  • Count int : Nombre d'éléments dans la liste.
  • IsReadOnly bool : Liste en lecture seule.
  • Items List<Account> : Liste générique représentant la liste des éléments.
  • Empty AccountList : Nouvelle liste vide.
  • Transfers TransferList : Liste des transferts bancaires associés à cet élément.

Méthodes

  • void Add(Account item) : Ajoute un nouvel élément bancaire.
  • void Clear() : Vide la liste des éléments bancaires.
  • bool Contains(T item) : Retourne true si élément bancaire existe, sinon, false.
  • void CopyTo(Account[] array, int arrayIndex) : Copie une portion d'une liste d'éléments à partir de la position arrayIndex.
  • IEnumerator<Account> GetEnumerator() : Retourne un énumérateur.
  • IEnumerator IEnumerable.GetEnumerator() : Retourne un énumérateur.
  • int IndexOf(T item) : Retourne la position d'un élément bancaire dans la liste.
  • void Insert(int index, Account item) : Insère un élément dans la liste à la position index.
  • bool Remove(Account item) : Supprime un élément bancaire.
  • int RemoveAll(Predicate<Account> predicate) : Supprime un ou plusieurs éléments bancaires en fonction des conditions Linq représentées par predicate. Retourne le nombre d'éléments supprimés.
  • void RemoveAt(int index) : Supprime un élément bancaire à la position index.
  • void CleanTransfers() : Vide la liste des transferts bancaires.
  • static List<Tuple<string, string, Type>> GetAvaillableAccounts() : Retourne une liste des types d'éléments bancaires inclus dans la librairie. Chaque élément de la liste est formé comme suit: Tuple<string nom, string description, Type type>, où nom représente la dénomination de l'élément bancaire, description, la description de l'élément nommé, et type, le type interne de l'élément bancaire.
  • Account GetById(Guid id) : Retourne un l'élément bancaire associé à l'identifiant unique id passé en paramètre.

Evénements

  • event AccountEventHandler AccountAddedEvent : Se produit lorsqu'un élément a été ajouté à la liste.
  • event AccountEventHandler AccountUpdatedEvent : Se produit lorsqu'un élément a été modifié.
  • event AccountEventHandler AccountRemovedEvent : Se produit lorsqu'un élément a été supprimé.