Example #1
0
 public AtmForm()
 {
     InitializeComponent();
     _atmRepository  = new AtmRepository();
     _paymentGateway = new PaymentGateway();
     _atm            = _atmRepository.GetById(1);
     NotifyClient(string.Empty);
 }
        public HeadOffice Handle(TransferCashToAtmCommand request)
        {
            var headOffice = _headOfficeRepository.GetById(request.HeadOfficeId);
            var atm        = _atmRepository.GetById(request.AtmId);

            headOffice.TransferCashToAtm(atm);

            _atmRepository.Save(atm);
            _headOfficeRepository.Save(headOffice);

            return(headOffice);
        }
        public Atm Handle(WithdrawCommand request)
        {
            var atm = _atmRepository.GetById(request.AtmId);

            if (atm.Withdraw(request.Amount))
            {
                var charge = request.Amount + atm.CalculateCommision(request.Amount);

                _paymentGateway.ChargePayment(charge);

                _atmRepository.Save(atm);
            }

            return(atm);
        }