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; }
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); } }
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; }
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; }