Пример #1
0
        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");
        }
Пример #2
0
        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);
            }
        }
Пример #3
0
        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");
        }
Пример #4
0
 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");
     }
 }