コード例 #1
0
ファイル: User.cs プロジェクト: ddadaal/AcademyCloud
        public void Charge(decimal amount)
        {
            var transaction = new UserTransaction(Guid.NewGuid(), DateTime.UtcNow, amount, TransactionReason.Charge, null, this);

            ReceivedUserTransactions.Add(transaction);
            ApplyTransaction(transaction);
        }
コード例 #2
0
 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;
 }
コード例 #3
0
ファイル: User.cs プロジェクト: ddadaal/AcademyCloud
        /// <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;
                }
            }
        }