private void UnRegister(TransactionEntryLineItemVM vm) { Model.Details.Remove(Model.Details.FirstOrDefault(t => t.Id == vm.TransactionDetailId1)); Model.Details.Remove(Model.Details.FirstOrDefault(t => t.Id == vm.TransactionDetailId2)); vm.PropertyChanged -= LineItemVM_PropertyChanged; }
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 Register(TransactionEntryLineItemVM vm) { var transDetail1 = new TransactionDetail() { Id = vm.TransactionDetailId1, AccountId = ToAccountId, TransactionId = Model.Id }; var transDetail2 = new TransactionDetail() { Id = vm.TransactionDetailId2, AccountId = FromAccountId, TransactionId = Model.Id }; Model.Details.Add(transDetail1); Model.Details.Add(transDetail2); vm.TransactionDetailId1 = transDetail1.Id; vm.TransactionDetailId2 = transDetail2.Id; vm.PropertyChanged += LineItemVM_PropertyChanged; }