public decimal MakeTransaction(TransferHistory transfer) { var exchangeAmount = GetExchangeAmount(transfer.ExchangeAmount, transfer.CurrencyCode); var listOfPreviousTransactions = _dataConnection.GetTransfers().GetAll().ToList(); if (IsUnderTheLimit(exchangeAmount, transfer, listOfPreviousTransactions)) { transfer.ExchangeAmount = exchangeAmount; SaveTransaction(transfer); return(transfer.ExchangeAmount); } else { throw new Exception("This user can not perform this transfer. This purchase is over the limit for this user"); } }