示例#1
0
        public void Retirer(ICompte p_compte, decimal p_montant)
        {
            if (p_compte is null)
            {
                throw new ArgumentNullException(nameof(p_compte));
            }
            if (p_montant <= 0)
            {
                throw new ArgumentException("Le montant doit être supérieur à 0", nameof(p_montant));
            }

            ITransaction transaction = m_createurTransaction.CreerTransactionRetirer(p_compte, p_montant);

            if (transaction.EstValide())
            {
                try
                {
                    transaction.ExecuterTransaction();
                    m_tiroirArgent.DistribuerArgent(p_montant);
                }
                catch (Exception ex)
                {
                    transaction.Annuler();
                }
            }
        }
示例#2
0
        public void Retirer(ICompte p_compte, decimal p_montant)
        {
            ITransaction transaction = m_createurTransaction.CreerTransactionRetirer(p_compte, p_montant);

            if (transaction.EstValide())
            {
                try
                {
                    transaction.ExecuterTransaction();
                    m_tiroirArgent.DistribuerArgent(p_montant);
                }
                catch (Exception ex)
                {
                    transaction.Annuler();
                }
            }
        }