public IEnumerable<IEvenementMetier> FaireUnRetrait(Montant montantRetrait, DateTime dateRetrait) { if (montantRetrait.Montant1 <= Provision.Montant1) { yield return new RetraitRéalisé(_numéroDeCompte, montantRetrait, dateRetrait); } else { int difference = Provision.Montant1 - montantRetrait.Montant1; if (difference * -1 > _autorisationCredit) { throw new RetraitNonAutorisé(); } else { yield return new RetraitRéalisé(_numéroDeCompte, montantRetrait, dateRetrait); yield return new BalanceNégativeDétectée(_numéroDeCompte, new Montant(difference * -1), dateRetrait); } } }
public IEnumerable<IEvenementMetier> FaireUnDepot(Montant montantDepot, DateTime dateDepot) { yield return new DépotRéalisé(_numéroDeCompte, montantDepot, dateDepot); }