public TECEstimator(TECObject initalObject, TECParameters parameters, TECExtraLabor extraLabor, Double duration, ChangeWatcher watcher) : base(Guid.NewGuid()) { this.duration = duration; this.parameters = parameters; parameters.PropertyChanged += memberObjectChanged; this.extraLabor = extraLabor; extraLabor.PropertyChanged += memberObjectChanged; getInitialValues(initalObject); watcher.CostChanged += costChanged; watcher.PointChanged += pointChanged; }
private void removeChildFromScope(TECScope scope, TECObject child) { if (child is TECAssociatedCost cost) { scope.AssociatedCosts.Remove(cost); } else if (child is TECTag tag) { scope.Tags.Remove(tag); } else { throw new NotImplementedException("Scope child isn't cost or tag."); } }
public bool IsTemplateObject(TECObject item) { if (item is TECSubScope subScope) { bool isTemplate = Templates.SubScopeTemplates.Contains(subScope); bool isTemplated = Templates.SubScopeTemplates.Contains(SubScopeSynchronizer.GetParent(subScope)) || Templates.SubScopeTemplates.Contains(SubScopeSynchronizer.GetParent(SubScopeSynchronizer.GetParent(subScope))); return(isTemplate || isTemplated); } else if (item is TECEquipment equipment) { return(Templates.EquipmentTemplates.Contains(equipment) || EquipmentSynchronizer.Contains(equipment)); } else if (item is TECController controller) { return(Templates.ControllerTemplates.Contains(controller)); } else if (item is TECPanel panel) { return(Templates.PanelTemplates.Contains(panel)); } else if (item is TECMisc misc) { return(Templates.MiscCostTemplates.Contains(misc)); } else if (item is TECParameters parameters) { return(Templates.Parameters.Contains(parameters)); } else if (item is TECSystem system) { return(Templates.SystemTemplates.Contains(system)); } else { return(false); } }
private void scopeChildRemoved(TECObject child) { foreach (TECElectricalMaterial type in Catalogs.ConnectionTypes) { removeChildFromScope(type, child); if (child is TECAssociatedCost cost) { type.RatedCosts.Remove(cost); } } foreach (TECElectricalMaterial type in Catalogs.ConduitTypes) { removeChildFromScope(type, child); if (child is TECAssociatedCost cost) { type.RatedCosts.Remove(cost); } } foreach (TECPanelType type in Catalogs.PanelTypes) { removeChildFromScope(type, child); } foreach (TECControllerType type in Catalogs.ControllerTypes) { removeChildFromScope(type, child); } foreach (TECIOModule module in Catalogs.IOModules) { removeChildFromScope(module, child); } foreach (TECDevice dev in Catalogs.Devices) { removeChildFromScope(dev, child); } foreach (TECSystem sys in Templates.SystemTemplates) { removeChildFromScope(sys, child); foreach (TECEquipment equip in sys.Equipment) { removeChildFromScope(equip, child); foreach (TECSubScope ss in equip.SubScope) { removeChildFromScope(ss, child); } } } foreach (TECEquipment equip in Templates.EquipmentTemplates) { removeChildFromScope(equip, child); foreach (TECSubScope ss in equip.SubScope) { removeChildFromScope(ss, child); } } foreach (TECSubScope ss in Templates.SubScopeTemplates) { removeChildFromScope(ss, child); } foreach (TECController controller in Templates.ControllerTemplates) { removeChildFromScope(controller, child); } foreach (TECPanel panel in Templates.PanelTemplates) { removeChildFromScope(panel, child); } }