void SetIGOs() { if (selectedInvoiceGroup != null) { try { if (invoiceGrpOverrides != null) { invoiceGrpOverrides.CollectionChanged -= IGOSListChanged; } invoiceGrpOverrides = InvoiceGrpOverrideTarget.FetchOverRides(selectedInvoiceGroup.InvoiceGrpId); if (invoiceGrpOverrides != null) { invoiceGrpOverrides.ForEach((lst, item) => { InvoiceGroup sendto = new InvoiceGroup { InvoiceGrpId = (int)item.SEND_TO_INVOICE_GRP_ID }; sendto = InvoiceGroupTarget.Get(sendto); item.Description = sendto.Description; item.Modified = false; }); invoiceGrpOverrides.CollectionChanged += IGOSListChanged; bWasDeleted = bWasAdded = false; RaisePropertyChanged("InvoiceGrpOverrides"); } } catch (Exception x) { ThisView.ShowMsg(x.ToString()); } } }
void Save() { try { ObservableCollection <InvoiceGrpOverride> wasGrpOverrides = InvoiceGrpOverrideTarget.FetchOverRides(selectedInvoiceGroup.InvoiceGrpId); if (bWasDeleted) { foreach (InvoiceGrpOverride igo in wasGrpOverrides) { if (!InvoiceGrpOverrides.Contains(igo)) { InvoiceGrpOverrideTarget.Remove(igo); } } } foreach (InvoiceGrpOverride igo in InvoiceGrpOverrides) { if (igo.DEFAULT_INVOICE_GRP_ID == 0) { igo.DEFAULT_INVOICE_GRP_ID = SelectedInvoiceGroup.InvoiceGrpId; InvoiceGrpOverrideTarget.Add(igo); } else if (igo.Modified) { InvoiceGrpOverrideTarget.Update(igo); } } SetIGOs(); } catch (Exception x) { ThisView.ShowMsg(x.ToString()); } }