public int InsertTransaction(Transaction transaction)
        {
            if(transaction.Account == null)
            {
                transaction.Account = context.Accounts.Find(transaction.AccountId);
            }
            context.Transactions.Add(transaction);
            transaction.Account.CalculateBalance(Enumerations.Action.Create, transaction);
            context.SaveChanges();

            return transaction.Id;
        }
        public void UpdateTransaction(Transaction transaction)
        {
            Transaction dbTransaction = context.Transactions.Find(transaction.Id);

            if (dbTransaction != null)
            {
                dbTransaction.Amount = transaction.Amount;
                dbTransaction.CategoryId = transaction.CategoryId;
                dbTransaction.Memo = transaction.Memo;
                dbTransaction.PostDate = transaction.PostDate;
                dbTransaction.TransactionTypeId = transaction.TransactionTypeId;
                dbTransaction.IsCleared = transaction.IsCleared;
                dbTransaction.UpdatedByUserId = transaction.UpdatedByUserId;
                dbTransaction.UpdatedDate = transaction.UpdatedDate;
                context.SaveChanges();
            }
        }
 public AccountDetailViewModel()
 {
     _transaction = new Transaction();
     _transaction.IsCleared = true;
 }
Example #4
0
 public void CalculateBalance(Enumerations.Action action, Transaction transaction, Transaction origTransaction = null)
 {
     if(action == Enumerations.Action.Create)
     {
         this.AddTransactionToAccount(transaction);
     }
     else if(action == Enumerations.Action.Update)
     {
         this.RemoveTransactionFromAccount(origTransaction);
         this.AddTransactionToAccount(transaction);
     }
     else if(action == Enumerations.Action.Delete)
     {
         this.RemoveTransactionFromAccount(transaction);
     }
 }
Example #5
0
        private void RemoveTransactionFromAccount(Transaction transaction)
        {
            decimal amount = transaction.Amount;

            if (transaction.TransactionTypeId == (int)Enumerations.TransactionType.Credit)
            {
                amount = (transaction.Amount * -1);
            }

            this.Balance = this.Balance + amount;
        }
Example #6
0
        private void AddTransactionToAccount(Transaction transaction)
        {
            decimal amount = transaction.Amount;

            if(transaction.TransactionTypeId == (int)Enumerations.TransactionType.Debit)
            {
                amount = (transaction.Amount * -1);
            }

            this.Balance = this.Balance + amount;
        }