public void Charge(decimal amount) { var transaction = new UserTransaction(Guid.NewGuid(), DateTime.UtcNow, amount, TransactionReason.Charge, null, this); ReceivedUserTransactions.Add(transaction); ApplyTransaction(transaction); }
public OrgTransaction(Guid id, DateTime time, decimal amount, TransactionReason reason, Payer payer, Receiver receiver, UserTransaction userTransaction) { Id = id; Time = time; Amount = amount; Reason = reason; UserTransaction = userTransaction; Payer = payer; Receiver = receiver; }
/// <summary> /// Apply the balance delta to the user. /// </summary> /// <param name="transaction">The transaction to apply</param> public void ApplyTransaction(UserTransaction transaction) { if (transaction.Receiver == this) { Balance += transaction.Amount; if (!Active && Balance >= 0) { Active = true; } } else if (transaction.Payer == this) { Balance -= transaction.Amount; if (Active && Balance < 0) { Active = false; } } }