public CustomerDebitDTO DebitTransaction(AmountDTO dto) { var charge = _transSurChargeRepository.GetSurcharge(dto.Amount); var transferAmount = _transSurChargeRepository.GetTransferAmount(dto.Amount); if (charge.FeeAmount > dto.Amount) { throw new ArgumentException("The amount is too low to transfer"); } if (charge == null) { throw new ArgumentNullException("Sorry! Something went wrong. Try again."); } var debitInfo = new CustomerDebitDTO { Amount = transferAmount + charge.FeeAmount, TransferAmount = transferAmount, Charge = charge.FeeAmount, DebitAmount = transferAmount + charge.FeeAmount }; return(debitInfo); }