private void populateRiser(ReadOnlyObservableCollection <TECController> controllers, ObservableCollection <TECPanel> panels) { ObservableCollection <ScopeSummaryItem> riserItems = new ObservableCollection <ScopeSummaryItem>(); foreach (TECController controller in controllers) { ScopeSummaryItem summaryItem = new ScopeSummaryItem(controller, bid.Parameters, bid.Duration); summaryItem.Estimate.PropertyChanged += (sender, e) => { if (e.PropertyName == "TotalPrice") { RaisePropertyChanged("RiserTotal"); } }; riserItems.Add(summaryItem); } foreach (TECPanel panel in panels) { ScopeSummaryItem summaryItem = new ScopeSummaryItem(panel, bid.Parameters); summaryItem.Estimate.PropertyChanged += (sender, e) => { if (e.PropertyName == "TotalPrice") { RaisePropertyChanged("RiserTotal"); } }; riserItems.Add(summaryItem); } Riser = riserItems; RaisePropertyChanged("RiserTotal"); }
private void removeFromCollection(ObservableCollection <ScopeSummaryItem> list, TECScope scope) { ScopeSummaryItem toRemove = null; foreach (var item in list) { if (item.Scope == scope) { toRemove = item; break; } } if (toRemove != null) { list.Remove(toRemove); } }
private void populateMisc(ObservableCollection <TECMisc> miscCosts) { ObservableCollection <ScopeSummaryItem> miscItems = new ObservableCollection <ScopeSummaryItem>(); foreach (TECMisc misc in miscCosts) { ScopeSummaryItem summaryItem = new ScopeSummaryItem(misc, bid.Parameters, bid.Duration); summaryItem.Estimate.PropertyChanged += (sender, e) => { if (e.PropertyName == "TotalPrice") { RaisePropertyChanged("MiscTotal"); } }; miscItems.Add(summaryItem); } Misc = miscItems; RaisePropertyChanged("MiscTotal"); }
private void changed(TECChangedEventArgs e) { if (e.Value is TECTypical typical) { if (e.Change == Change.Add) { SystemSummaryItem summaryItem = new SystemSummaryItem(typical, bid.Parameters); summaryItem.Estimate.PropertyChanged += (sender, args) => { if (args.PropertyName == "TotalPrice") { RaisePropertyChanged("SystemTotal"); } }; Systems.Add(summaryItem); } else if (e.Change == Change.Remove) { SystemSummaryItem toRemove = null; foreach (var item in Systems) { if (item.Typical == typical) { toRemove = item; break; } } if (toRemove != null) { Systems.Remove(toRemove); } } RaisePropertyChanged("SystemTotal"); } else if (e.Sender is TECBid) { if (e.Change == Change.Add) { if (e.Value is TECController || e.Value is TECPanel) { ScopeSummaryItem summaryItem = new ScopeSummaryItem(e.Value as TECScope, bid.Parameters); summaryItem.Estimate.PropertyChanged += (sender, args) => { if (args.PropertyName == "TotalPrice") { RaisePropertyChanged("RiserTotal"); } }; Riser.Add(summaryItem); } else if (e.Value is TECMisc misc) { ScopeSummaryItem summaryItem = new ScopeSummaryItem(misc, bid.Parameters); summaryItem.Estimate.PropertyChanged += (sender, args) => { if (args.PropertyName == "TotalPrice") { RaisePropertyChanged("MiscTotal"); } }; Misc.Add(summaryItem); } } else if (e.Change == Change.Remove) { if (e.Value is TECController || e.Value is TECPanel) { removeFromCollection(Riser, e.Value as TECScope); } else if (e.Value is TECMisc misc) { removeFromCollection(Misc, misc); } } if (e.PropertyName == "Duration") { populateAll(bid); setupExtraLaborEstimate(bid); } RaisePropertyChanged("RiserTotal"); RaisePropertyChanged("MiscTotal"); } }