public Transaction Transfer(BaseClient destClient, decimal sum, CURRENCY cur) { var originalSum = sum; if (sum <= 0 || !Enabled || !destClient.Enabled) { throw new ArgumentException("Incorrect sum or account is disabled!"); } if (this.Currency != cur) { sum = AznRate.Convert(sum, cur, this.Currency); } var charge = sum * this.Charge; sum += charge; if (Balance >= sum) { this.Balance -= sum; } else { throw new ArgumentException("Insufficient funds!"); } return(new TransferTran(this.UserID, originalSum, sum, this.Account, destClient.Account, charge, cur, this.Currency, DateTime.Now, true)); }
public Transaction Deposit(decimal sum, CURRENCY cur) { var originalSum = sum; if (sum <= 0 || !Enabled) { throw new ArgumentException("Incorrect sum or account is disabled!"); } if (this.Currency != cur) { sum = AznRate.Convert(sum, cur, this.Currency); } this.Balance += sum; return(new DepositTrans(this.UserID, originalSum, sum, this.Account, 0, cur, this.Currency, DateTime.Now, true)); }