Beispiel #1
0
 public IEnumerable<IEvenementMetier> FaireUnDepot(Montant m, DateTime date)
 {
     yield return new DépotRéalisé(this.CurrentAccount, m, date);
     var balance = AddMontant(m, date);
     if(balance != null)
         yield return AddMontant(m, date);
 }
Beispiel #2
0
 public IEnumerable<IEvenementMetier> FaireUnRetrait(Montant montantRetrait, DateTime dateRetrait)
 {
     Montant nm = new Montant(montantRetrait.Value * -1);
     IEvenementMetier e = AddMontant(nm, dateRetrait);
     yield return new RetraitRéalisé(this.CurrentAccount, montantRetrait, dateRetrait);
     if (e != null) yield return e;
 }
 public DépotRéalisé(string _numéroDeCompte, Montant montantDepot, DateTime dateDepot)
 {
     // TODO: Complete member initialization
     this._numéroDeCompte = _numéroDeCompte;
     this.montantDepot = montantDepot;
     this.dateDepot = dateDepot;
 }
 public RetraitRéalisé(string _numéroDeCompte, Montant montantRetrait, DateTime dateRetrait)
 {
     // TODO: Complete member initialization
     this._numéroDeCompte = _numéroDeCompte;
     this.montantRetrait = montantRetrait;
     this.dateRetrait = dateRetrait;
 }
        public IEnumerable <IEvénementMétier> FaireUnRetrait(Montant montantRetrait, DateTime dateRetrait)
        {
            var numeroDeCompte = RecupererNumeroDeCompte();

            if (numeroDeCompte == string.Empty)
            {
                return(null);
            }

            var retrait = new RetraitRéalisé(numeroDeCompte, montantRetrait, dateRetrait);
            var montantRestantSurLeCompte = CalculerMontantRestantSurLeCompteApresRetrait(retrait);

            if (montantRestantSurLeCompte >= 0)
            {
                return(new[] { (IEvénementMétier)retrait });
            }

            if (Math.Abs(montantRestantSurLeCompte) > RecupererAutorisationDeCredit())
            {
                throw new RetraitNonAutorisé();
            }

            var balanceNegative = new BalanceNégativeDétectée(numeroDeCompte, new Montant(Math.Abs(montantRestantSurLeCompte)), dateRetrait);

            return(new[] { (IEvénementMétier)retrait, balanceNegative });
        }
Beispiel #6
0
 public IEnumerable<IEvenementMetier> FaireUnRetrait(Montant montantRetrait, DateTime dateRetrait)
 {
     yield return new RetraitRéalisé(this._compteCréé._numéroDeCompte, montantRetrait, dateRetrait);
     if (this._compteCréé._autorisationDeCrédit > (this.balance - montantRetrait._montant))
     {
         yield return new BalanceNégativeDétectée(this._compteCréé._numéroDeCompte, montantRetrait, dateRetrait);
     }
 }
Beispiel #7
0
 private IEvenementMetier AddMontant(Montant m, DateTime date)
 {
     this.Montant.Value += m.Value;
     if (this.Montant.Value < 0)
     {
         Montant nm = new Montant(this.Montant.Value + m.Value);
         return new BalanceNégativeDétectée(this.CurrentAccount, nm, date);
     }
     return null;
 }
        public IEnumerable<IEvénementMétier> FaireUnDepot(Montant montantDepot, DateTime dateDepot)
        {
            var numeroDeCompte = RecupererNumeroDeCompte();
            if (numeroDeCompte == string.Empty)
            {
                return null;
            }

            var depot = new DépotRéalisé(numeroDeCompte, montantDepot, dateDepot);
            return new[] { (IEvénementMétier)depot };
        }
        public IEnumerable <IEvénementMétier> FaireUnDepot(Montant montantDepot, DateTime dateDepot)
        {
            var numeroDeCompte = RecupererNumeroDeCompte();

            if (numeroDeCompte == string.Empty)
            {
                return(null);
            }

            var depot = new DépotRéalisé(numeroDeCompte, montantDepot, dateDepot);

            return(new[] { (IEvénementMétier)depot });
        }
Beispiel #10
0
 public IEnumerable<IEvenementMetier> FaireUnRetrait(Montant montantRetrait, DateTime dateRetrait)
 {
     if ((montant.Valeur - montantRetrait.Valeur)*-1 > decouvertAutorise.Valeur)
     {
         throw new RetraitNonAutorisé();
     }
     else
     {
         montant.Valeur -= montantRetrait.Valeur;
         yield return new RetraitRéalisé(numeroCompte, montantRetrait, dateRetrait);
         if (montant.Valeur < 0)
         {
             yield return new BalanceNégativeDétectée(numeroCompte, new Montant(montant.Valeur*-1), dateRetrait);
         }
     }
 }
Beispiel #11
0
        public CompteBancaire(params IEvenementMetier[] em)
        {
            this.Montant = new Montant(0);
            foreach(IEvenementMetier e in em)
            {
                events = em;

                // on traite certaines spécificités
                if(e.GetType().IsAssignableFrom(typeof(CompteCréé)))
                {
                    CurrentAccount = ((CompteCréé)e).Compte;
                }
                if(e.GetType().IsAssignableFrom(typeof(DépotRéalisé)))
                {
                    AddMontant(((DépotRéalisé)e).Montant, ((DépotRéalisé)e).Date);
                }
                if (e.GetType().IsAssignableFrom(typeof(RetraitRéalisé)))
                {
                    ((RetraitRéalisé)e).Montant.Value *= -1;
                    AddMontant(((RetraitRéalisé)e).Montant, ((RetraitRéalisé)e).dateRetrait);
                }
            }
        }
        public IEnumerable<IEvénementMétier> FaireUnRetrait(Montant montantRetrait, DateTime dateRetrait)
        {
            var numeroDeCompte = RecupererNumeroDeCompte();
            if (numeroDeCompte == string.Empty)
            {
                return null;
            }

            var retrait = new RetraitRéalisé(numeroDeCompte, montantRetrait, dateRetrait);
            var montantRestantSurLeCompte = CalculerMontantRestantSurLeCompteApresRetrait(retrait);

            if (montantRestantSurLeCompte >= 0)
            {
                return new[] { (IEvénementMétier)retrait };
            }

            if (Math.Abs(montantRestantSurLeCompte) > RecupererAutorisationDeCredit())
            {
                throw new RetraitNonAutorisé();
            }

            var balanceNegative = new BalanceNégativeDétectée(numeroDeCompte, new Montant(Math.Abs(montantRestantSurLeCompte)), dateRetrait);
            return new[] { (IEvénementMétier)retrait, balanceNegative };
        }
 public RetraitRéalisé(string numéroDeCompte, Montant montantRetrait, DateTime dateRetrait)
 {
     this.numeroCompte = numéroDeCompte;
     this.montant = montantRetrait;
     this.dateRetrait = dateRetrait;
 }
 public RetraitRéalisé(string numéroDeCompte, Montant montantRetrait, DateTime dateRetrait)
 {
     NuméroDeCompte = numéroDeCompte;
     MontantRetrait = montantRetrait;
     DateRetrait    = dateRetrait;
 }
Beispiel #15
0
 public IEnumerable<IEvenementMetier> FaireUnDepot(Montant montantDepot, DateTime dateDepot)
 {
     montant.Valeur += montantDepot.Valeur;
     yield return new DépotRéalisé(numeroCompte, montantDepot, dateDepot);
 }
 public IEnumerable<IEvenementMetier> FaireUnRetrait(Montant montantRetrait, System.DateTime dateRetrait)
 {
     yield return new RetraitRéalisé(this._compteCréé._numéroDeCompte,montantRetrait, dateRetrait);
 }
Beispiel #17
0
 public DépotRéalisé(string numéroDeCompte, Montant montantDepot, DateTime dateDepot)
 {
     _numéroDeCompte = numéroDeCompte;
     _montantDepot = montantDepot;
     _dateDepot = dateDepot;
 }
 public RetraitRéalisé(string numéroDeCompte, Montant montantRetrait, DateTime dateRetrait)
 {
     NuméroDeCompte = numéroDeCompte;
     MontantRetrait = montantRetrait;
     DateRetrait = dateRetrait;
 }
 public BalanceNégativeDétectée(string numéroDeCompte, Montant montant, DateTime dateRetrait)
 {
     _numéroDeCompte = numéroDeCompte;
     _montant = montant;
     _dateRetrait = dateRetrait;
 }
Beispiel #20
0
 public RetraitRéalisé(string p, Montant Montant, DateTime dateRetrait)
 {
     this.Compte = p;
     this.Montant = Montant;
     this.dateRetrait = dateRetrait;
 }
 public BalanceNégativeDétectée(string numeroCompte, Montant montant, DateTime dateRetrait)
 {
     this.numeroCompte = numeroCompte;
     this.montant = montant;
     this.dateRetrait = dateRetrait;
 }
 public BalanceNégativeDétectée(string _numéroDeCompte, Montant montant, DateTime dateRetrait)
 {
     this._numéroDeCompte = _numéroDeCompte;
     this.montant = montant;
     this.dateRetrait = dateRetrait;
 }
Beispiel #23
0
 public DépotRéalisé(string c, Montant m, DateTime d)
 {
     Compte = c;
     Montant = m;
     Date = d;
 }
 public BalanceNégativeDétectée(string numéroDeCompte, Montant montant, DateTime dateRetrait)
 {
     NuméroDeCompte = numéroDeCompte;
     Montant        = montant;
     DateRetrait    = dateRetrait;
 }
Beispiel #25
0
 public DépotRéalisé(string numéroDeCompte, Montant montantDepot, DateTime dateDepot)
 {
     NuméroDeCompte = numéroDeCompte;
     MontantDepot   = montantDepot;
     DateDepot      = dateDepot;
 }
Beispiel #26
0
 public DépotRéalisé(string numéroDeCompte, Montant montantDepot, DateTime dateDepot)
 {
     this.numeroCompte = numéroDeCompte;
     this.montantDepot = montantDepot;
     this.dateDepot = dateDepot;
 }
Beispiel #27
0
 public IEnumerable<IEvenementMetier> FaireUnDepot(Montant montantDepot, DateTime dateDepot)
 {
     yield return new DépotRéalisé(_numCompte, montantDepot, dateDepot);
 }
Beispiel #28
0
 public IEnumerable<IEvenementMetier> FaireUnRetrait(Montant montantRetrait, DateTime dateRetrait)
 {
     yield return new RetraitRéalisé(_numCompte, montantRetrait, dateRetrait);
 }
Beispiel #29
0
 public CompteBancaire(CompteCréé compteCréé, DépotRéalisé dépotRéalisé)
 {
     numeroCompte = compteCréé.NuméroDeCompte;
     decouvertAutorise.Valeur = compteCréé.AutorisationDeCrédit;
     montant = dépotRéalisé.MontantDepot;
 }
 public BalanceNégativeDétectée(string c, Montant m, DateTime d)
 {
     Compte = c;
     Montant = m;
     Date = d;
 }
 public IEnumerable<IEvenementMetier> FaireUnDepot(Montant montantDepot, System.DateTime dateDepot)
 {
     yield return new DépotRéalisé(this._compteCréé._numéroDeCompte, montantDepot, dateDepot);
 }