public TransactionEntryVM(Transaction model, IEnumerable <Account> fromAccounts, IEnumerable <Account> toAccounts) : base(model) { FromAccounts = fromAccounts; ToAccounts = toAccounts; var trans = Model; var payToAccount = trans.Details.Where(t => t.CreditAmount > 0).FirstOrDefault(); var payFromAccount = trans.Details.Where(t => t.DebitAmount > 0).FirstOrDefault(); if (payToAccount != null) { ToAccountId = payToAccount.AccountId; } if (payFromAccount != null) { FromAccountId = payFromAccount.AccountId; } var payFromDetails = trans.Details.Where(t => t.AccountId == FromAccountId).ToArray(); var payToDetails = trans.Details.Where(t => t.AccountId == ToAccountId).ToArray(); for (int i = 0; i < payFromDetails.Length; i++) { var lineItemVM = new TransactionEntryLineItemVM() { Amount = payToDetails[i].CreditAmount, Reference = payToDetails[i].Reference, TransactionDetailId1 = payFromDetails[i].Id, TransactionDetailId2 = payToDetails[i].Id }; lineItemVM.PropertyChanged += LineItemVM_PropertyChanged; TransactionEntryLineItemVMs.Add(lineItemVM); } TransactionEntryLineItemVMs.CollectionChanged += LineItems_CollectionChanged1; ReCalculateTotals(); PropertyChanging += ReceiptEntryVM_PropertyChanging; }
private void ReCalculateTotals() { Total = TransactionEntryLineItemVMs.Sum(t => t.Amount); }