예제 #1
0
 public AtmWithdrawService(IAtmWithdrawRepository atmWithdrawRepository, IBankAccountRepository bankAccountRepository, IExpenseRepository expenditureRepository,
                           IHistoricMovementRepository historicMovementRepository)
 {
     this._atmWithdrawRepository      = atmWithdrawRepository;
     this._bankAccountRepository      = bankAccountRepository;
     this._expenditureRepository      = expenditureRepository;
     this._historicMovementRepository = historicMovementRepository;
 }
        protected MovementStrategy(Movement movement, IBankAccountRepository bankAccountRepository, IHistoricMovementRepository historicMovementRepository, IIncomeRepository incomeRepository, IAtmWithdrawRepository atmWithdrawRepository)
        {
            CurrentMovement = movement;

            this.BankAccountRepository      = bankAccountRepository;
            this.HistoricMovementRepository = historicMovementRepository;
            this.IncomeRepository           = incomeRepository;
            this.AtmWithdrawRepository      = atmWithdrawRepository;
        }
 public BankAccountService(IBankAccountRepository bankAccountRepository, IExpenseRepository expenditureRepository, IIncomeRepository incomeRepository,
                           IAtmWithdrawRepository atmWithdrawRepository, IBankBranchRepository bankBranchRepository)
 {
     this._bankAccountRepository = bankAccountRepository;
     this._expenditureRepository = expenditureRepository;
     this._incomeRepository      = incomeRepository;
     this._atmWithdrawRepository = atmWithdrawRepository;
     this._bankBranchRepository  = bankBranchRepository;
 }
예제 #4
0
 public SavingService(ISavingRepository savingRepository, IBankAccountRepository bankAccountRepository, IHistoricMovementRepository historicMovementRepository,
                      IIncomeRepository incomeRepository, IAtmWithdrawRepository atmWithdrawRepository)
 {
     this._savingRepository           = savingRepository;
     this._bankAccountRepository      = bankAccountRepository;
     this._historicMovementRepository = historicMovementRepository;
     this._incomeRepository           = incomeRepository;
     this._atmWithdrawRepository      = atmWithdrawRepository;
 }
예제 #5
0
 public CashMovementStrategy(Movement movement, IBankAccountRepository bankAccountRepository, IHistoricMovementRepository historicMovementRepository, IIncomeRepository incomeRepository, IAtmWithdrawRepository atmWithdrawRepository)
     : base(movement, bankAccountRepository, historicMovementRepository, incomeRepository, atmWithdrawRepository)
 {
 }
        public static MovementStrategy GetMovementStrategy(Movement movement, IBankAccountRepository bankAccountRepository, IHistoricMovementRepository historicMovementRepository, IIncomeRepository incomeRepository, IAtmWithdrawRepository atmWithdrawRepository)
        {
            MovementStrategy strategy = null;

            switch (movement.PaymentMethod)
            {
            case PaymentMethod.Cash:
                strategy = new CashMovementStrategy(movement, bankAccountRepository, historicMovementRepository, incomeRepository, atmWithdrawRepository);
                break;

            case PaymentMethod.InternalTransfer:
                strategy = new InternalTransferMovementStrategy(movement, bankAccountRepository, historicMovementRepository, incomeRepository, atmWithdrawRepository);
                break;

            case PaymentMethod.CB:
            case PaymentMethod.DirectDebit:
            case PaymentMethod.Transfer:
                strategy = new CommonMovementStrategy(movement, bankAccountRepository, historicMovementRepository, incomeRepository, atmWithdrawRepository);
                break;

            default:
                throw new ArgumentException("Unknown PaymentMethod");
            }

            return(strategy);
        }