public IncomeService(IIncomeRepository incomeRepository, IBankAccountRepository bankAccountRepository, IHistoricMovementRepository historicMovementRepository) { this._incomeRepository = incomeRepository; this._bankAccountRepository = bankAccountRepository; this._historicMovementRepository = historicMovementRepository; }
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 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; }
public static void Debit(IHistoricMovementRepository historicMovementRepository, decimal movementAmount, int sourceId, ObjectType sourceObjectType, decimal sourceAmount) { var historicMovement = new HistoricMovement { Date = DateTime.Now, Cost = -movementAmount, SourceId = sourceId, SourceType = sourceObjectType, SourceOldAmount = sourceAmount, SourceNewAmount = sourceAmount - movementAmount }; historicMovementRepository.Create(historicMovement); }
public static void Credit(IHistoricMovementRepository historicMovementRepository, decimal movementAmount, int sourceId, ObjectType sourceObjectType, decimal sourceAmount, int destinationId, ObjectType destinationObjectType, decimal destinationAmount) { var historicMovement = new HistoricMovement { Date = DateTime.Now, Cost = movementAmount, SourceId = sourceId, SourceType = sourceObjectType, SourceOldAmount = sourceAmount, SourceNewAmount = sourceAmount + movementAmount, DestinationId = destinationId, DestinationType = destinationObjectType, DestinationOldAmount = destinationAmount, DestinationNewAmount = destinationAmount - movementAmount }; historicMovementRepository.Create(historicMovement); }
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); }