private void _setContainerLocations() { IEnumerable <CswPrimaryKey> ContainerNodePks = this.getContainersInGroup(); if (ContainerNodePks.Count() > 0) { int BatchThreshold = CswNbtBatchManager.getBatchThreshold(_CswNbtResources); if (ContainerNodePks.Count() > BatchThreshold) { // Shelve this to a batch operation CswNbtBatchOpSyncLocation op = new CswNbtBatchOpSyncLocation(_CswNbtResources); CswNbtObjClassBatchOp BatchNode = op.makeBatchOp(ContainerNodePks, this.Location.SelectedNodeId); } else { foreach (CswPrimaryKey CurrentContainerNodePk in ContainerNodePks) { CswNbtObjClassContainer CurrentContainer = _CswNbtResources.Nodes[CurrentContainerNodePk]; if (null != CurrentContainer) { CurrentContainer.Location.SelectedNodeId = this.Location.SelectedNodeId; CurrentContainer.postChanges(false); } } } } }
/// <summary> /// Create an ObjClass instance for given ObjectClass and Node /// </summary> public static CswNbtObjClass makeObjClass(CswNbtResources CswNbtResources, CswNbtMetaDataObjectClass ObjectClass, CswNbtNode Node = null) { CswNbtObjClass ReturnVal = null; switch (ObjectClass.ObjectClass) { case CswEnumNbtObjectClass.BalanceClass: ReturnVal = new CswNbtObjClassBalance(CswNbtResources, Node); break; case CswEnumNbtObjectClass.BalanceConfigurationClass: ReturnVal = new CswNbtObjClassBalanceConfiguration(CswNbtResources, Node); break; case CswEnumNbtObjectClass.BatchOpClass: ReturnVal = new CswNbtObjClassBatchOp(CswNbtResources, Node); break; case CswEnumNbtObjectClass.BiologicalClass: ReturnVal = new CswNbtObjClassBiological(CswNbtResources, Node); break; case CswEnumNbtObjectClass.CertDefCharacteristicLimitClass: ReturnVal = new CswNbtObjClassCertDefCharacteristicLimit(CswNbtResources, Node); break; case CswEnumNbtObjectClass.CertDefSpecClass: ReturnVal = new CswNbtObjClassCertDefSpec(CswNbtResources, Node); break; case CswEnumNbtObjectClass.CertificateDefinitionClass: ReturnVal = new CswNbtObjClassCertificateDefinition(CswNbtResources, Node); break; case CswEnumNbtObjectClass.CertDefConditionClass: ReturnVal = new CswNbtObjClassCertDefCondition(CswNbtResources, Node); break; case CswEnumNbtObjectClass.CertDefSpecLevelClass: ReturnVal = new CswNbtObjClassCertDefSpecLevel(CswNbtResources, Node); break; case CswEnumNbtObjectClass.CofADocumentClass: ReturnVal = new CswNbtObjClassCofADocument(CswNbtResources, Node); break; case CswEnumNbtObjectClass.CofAMethodClass: ReturnVal = new CswNbtObjClassCofAMethod(CswNbtResources, Node); break; case CswEnumNbtObjectClass.CofAMethodTemplateClass: ReturnVal = new CswNbtObjClassCofAMethodTemplate(CswNbtResources, Node); break; case CswEnumNbtObjectClass.ContainerClass: ReturnVal = new CswNbtObjClassContainer(CswNbtResources, Node); break; case CswEnumNbtObjectClass.ContainerDispenseTransactionClass: ReturnVal = new CswNbtObjClassContainerDispenseTransaction(CswNbtResources, Node); break; case CswEnumNbtObjectClass.ContainerGroupClass: ReturnVal = new CswNbtObjClassContainerGroup(CswNbtResources, Node); break; case CswEnumNbtObjectClass.ContainerLocationClass: ReturnVal = new CswNbtObjClassContainerLocation(CswNbtResources, Node); break; case CswEnumNbtObjectClass.ControlZoneClass: ReturnVal = new CswNbtObjClassControlZone(CswNbtResources, Node); break; case CswEnumNbtObjectClass.CustomerClass: ReturnVal = new CswNbtObjClassCustomer(CswNbtResources, Node); break; case CswEnumNbtObjectClass.DepartmentClass: ReturnVal = new CswNbtObjClassDepartment(CswNbtResources, Node); break; case CswEnumNbtObjectClass.DesignNodeTypeClass: ReturnVal = new CswNbtObjClassDesignNodeType(CswNbtResources, Node); break; case CswEnumNbtObjectClass.DesignNodeTypePropClass: ReturnVal = new CswNbtObjClassDesignNodeTypeProp(CswNbtResources, Node); break; case CswEnumNbtObjectClass.DesignNodeTypeTabClass: ReturnVal = new CswNbtObjClassDesignNodeTypeTab(CswNbtResources, Node); break; case CswEnumNbtObjectClass.DesignSequenceClass: ReturnVal = new CswNbtObjClassDesignSequence(CswNbtResources, Node); break; case CswEnumNbtObjectClass.DocumentClass: ReturnVal = new CswNbtObjClassDocument(CswNbtResources, Node); break; case CswEnumNbtObjectClass.DSDPhraseClass: ReturnVal = new CswNbtObjClassDSDPhrase(CswNbtResources, Node); break; case CswEnumNbtObjectClass.EnterprisePartClass: ReturnVal = new CswNbtObjClassEnterprisePart(CswNbtResources, Node); break; case CswEnumNbtObjectClass.EquipmentAssemblyClass: ReturnVal = new CswNbtObjClassEquipmentAssembly(CswNbtResources, Node); break; case CswEnumNbtObjectClass.EquipmentClass: ReturnVal = new CswNbtObjClassEquipment(CswNbtResources, Node); break; case CswEnumNbtObjectClass.EquipmentTypeClass: ReturnVal = new CswNbtObjClassEquipmentType(CswNbtResources, Node); break; case CswEnumNbtObjectClass.FeedbackClass: ReturnVal = new CswNbtObjClassFeedback(CswNbtResources, Node); break; case CswEnumNbtObjectClass.FireClassExemptAmountClass: ReturnVal = new CswNbtObjClassFireClassExemptAmount(CswNbtResources, Node); break; case CswEnumNbtObjectClass.FireClassExemptAmountSetClass: ReturnVal = new CswNbtObjClassFireClassExemptAmountSet(CswNbtResources, Node); break; case CswEnumNbtObjectClass.GenericClass: ReturnVal = new CswNbtObjClassGeneric(CswNbtResources, Node); break; case CswEnumNbtObjectClass.GHSClass: ReturnVal = new CswNbtObjClassGHS(CswNbtResources, Node); break; case CswEnumNbtObjectClass.GHSClassificationClass: ReturnVal = new CswNbtObjClassGHSClassification(CswNbtResources, Node); break; case CswEnumNbtObjectClass.GHSPhraseClass: ReturnVal = new CswNbtObjClassGHSPhrase(CswNbtResources, Node); break; case CswEnumNbtObjectClass.GHSSignalWordClass: ReturnVal = new CswNbtObjClassGHSSignalWord(CswNbtResources, Node); break; case CswEnumNbtObjectClass.InspectionDesignClass: ReturnVal = new CswNbtObjClassInspectionDesign(CswNbtResources, Node); break; case CswEnumNbtObjectClass.InspectionRouteClass: ReturnVal = new CswNbtObjClassInspectionRoute(CswNbtResources, Node); break; case CswEnumNbtObjectClass.InspectionTargetClass: ReturnVal = new CswNbtObjClassInspectionTarget(CswNbtResources, Node); break; case CswEnumNbtObjectClass.InspectionTargetGroupClass: ReturnVal = new CswNbtObjClassInspectionTargetGroup(CswNbtResources, Node); break; case CswEnumNbtObjectClass.InventoryGroupClass: ReturnVal = new CswNbtObjClassInventoryGroup(CswNbtResources, Node); break; case CswEnumNbtObjectClass.InventoryGroupPermissionClass: ReturnVal = new CswNbtObjClassInventoryGroupPermission(CswNbtResources, Node); break; case CswEnumNbtObjectClass.InventoryLevelClass: ReturnVal = new CswNbtObjClassInventoryLevel(CswNbtResources, Node); break; case CswEnumNbtObjectClass.JurisdictionClass: ReturnVal = new CswNbtObjClassJurisdiction(CswNbtResources, Node); break; case CswEnumNbtObjectClass.Level: ReturnVal = new CswNbtObjClassLevel(CswNbtResources, Node); break; case CswEnumNbtObjectClass.LocationClass: ReturnVal = new CswNbtObjClassLocation(CswNbtResources, Node); break; case CswEnumNbtObjectClass.LQNoClass: ReturnVal = new CswNbtObjClassLQNo(CswNbtResources, Node); break; case CswEnumNbtObjectClass.ManufacturerClass: ReturnVal = new CswNbtObjClassManufacturer(CswNbtResources, Node); break; case CswEnumNbtObjectClass.ManufacturerEquivalentPartClass: ReturnVal = new CswNbtObjClassManufacturerEquivalentPart(CswNbtResources, Node); break; case CswEnumNbtObjectClass.ChemicalClass: ReturnVal = new CswNbtObjClassChemical(CswNbtResources, Node); break; case CswEnumNbtObjectClass.MaterialComponentClass: ReturnVal = new CswNbtObjClassMaterialComponent(CswNbtResources, Node); break; case CswEnumNbtObjectClass.MaterialSynonymClass: ReturnVal = new CswNbtObjClassMaterialSynonym(CswNbtResources, Node); break; case CswEnumNbtObjectClass.MailReportClass: ReturnVal = new CswNbtObjClassMailReport(CswNbtResources, Node); break; case CswEnumNbtObjectClass.MailReportGroupClass: ReturnVal = new CswNbtObjClassMailReportGroup(CswNbtResources, Node); break; case CswEnumNbtObjectClass.MailReportGroupPermissionClass: ReturnVal = new CswNbtObjClassMailReportGroupPermission(CswNbtResources, Node); break; case CswEnumNbtObjectClass.MethodClass: ReturnVal = new CswNbtObjClassMethod(CswNbtResources, Node); break; case CswEnumNbtObjectClass.MethodCharacteristicClass: ReturnVal = new CswNbtObjClassMethodCharacteristic(CswNbtResources, Node); break; case CswEnumNbtObjectClass.MethodConditionClass: ReturnVal = new CswNbtObjClassMethodCondition(CswNbtResources, Node); break; case CswEnumNbtObjectClass.NonChemicalClass: ReturnVal = new CswNbtObjClassNonChemical(CswNbtResources, Node); break; case CswEnumNbtObjectClass.PrinterClass: ReturnVal = new CswNbtObjClassPrinter(CswNbtResources, Node); break; case CswEnumNbtObjectClass.PrintJobClass: ReturnVal = new CswNbtObjClassPrintJob(CswNbtResources, Node); break; case CswEnumNbtObjectClass.PrintLabelClass: ReturnVal = new CswNbtObjClassPrintLabel(CswNbtResources, Node); break; case CswEnumNbtObjectClass.ProblemClass: ReturnVal = new CswNbtObjClassProblem(CswNbtResources, Node); break; case CswEnumNbtObjectClass.ReceiptLotClass: ReturnVal = new CswNbtObjClassReceiptLot(CswNbtResources, Node); break; case CswEnumNbtObjectClass.RegulatoryListClass: ReturnVal = new CswNbtObjClassRegulatoryList(CswNbtResources, Node); break; case CswEnumNbtObjectClass.RegulatoryListCasNoClass: ReturnVal = new CswNbtObjClassRegulatoryListCasNo(CswNbtResources, Node); break; case CswEnumNbtObjectClass.RegulatoryListMemberClass: ReturnVal = new CswNbtObjClassRegulatoryListMember(CswNbtResources, Node); break; case CswEnumNbtObjectClass.RegulatoryListListCodeClass: ReturnVal = new CswNbtObjClassRegulatoryListListCode(CswNbtResources, Node); break; case CswEnumNbtObjectClass.ReportClass: ReturnVal = new CswNbtObjClassReport(CswNbtResources, Node); break; case CswEnumNbtObjectClass.ReportGroupClass: ReturnVal = new CswNbtObjClassReportGroup(CswNbtResources, Node); break; case CswEnumNbtObjectClass.ReportGroupPermissionClass: ReturnVal = new CswNbtObjClassReportGroupPermission(CswNbtResources, Node); break; case CswEnumNbtObjectClass.RequestClass: ReturnVal = new CswNbtObjClassRequest(CswNbtResources, Node); break; case CswEnumNbtObjectClass.RequestItemClass: ReturnVal = new CswNbtObjClassRequestItem(CswNbtResources, Node); break; case CswEnumNbtObjectClass.RoleClass: ReturnVal = new CswNbtObjClassRole(CswNbtResources, Node); break; case CswEnumNbtObjectClass.SDSDocumentClass: ReturnVal = new CswNbtObjClassSDSDocument(CswNbtResources, Node); break; case CswEnumNbtObjectClass.TestingLabClass: ReturnVal = new CswNbtObjClassTestingLab(CswNbtResources, Node); break; case CswEnumNbtObjectClass.GeneratorClass: ReturnVal = new CswNbtObjClassGenerator(CswNbtResources, Node); break; case CswEnumNbtObjectClass.SizeClass: ReturnVal = new CswNbtObjClassSize(CswNbtResources, Node); break; case CswEnumNbtObjectClass.TaskClass: ReturnVal = new CswNbtObjClassTask(CswNbtResources, Node); break; case CswEnumNbtObjectClass.TestingLabUserAssignmentClass: ReturnVal = new CswNbtObjClassTestingLabUserAssignment(CswNbtResources, Node); break; case CswEnumNbtObjectClass.TestingLabMethodAssignmentClass: ReturnVal = new CswNbtObjClassTestingLabMethodAssignment(CswNbtResources, Node); break; case CswEnumNbtObjectClass.UnitOfMeasureClass: ReturnVal = new CswNbtObjClassUnitOfMeasure(CswNbtResources, Node); break; case CswEnumNbtObjectClass.UserClass: ReturnVal = new CswNbtObjClassUser(CswNbtResources, Node); break; case CswEnumNbtObjectClass.VendorClass: ReturnVal = new CswNbtObjClassVendor(CswNbtResources, Node); break; case CswEnumNbtObjectClass.WorkUnitClass: ReturnVal = new CswNbtObjClassWorkUnit(CswNbtResources, Node); break; default: //ReturnVal = new CswNbtObjClassDefault( CswNbtResources, _CswNbtNode ); throw (new CswDniException("There is no NbtObjClass derivative for object class " + ObjectClass.ObjectClass.ToString())); }//switch return(ReturnVal); } //makeObjClass()
public bool triggerOnButtonClick(NbtButtonData ButtonData) { bool Ret = false; //1: We have Button Data if (null != ButtonData) { //2: Before the Button Click, Save the Node if any tabs and properties have been provided Collection <Int32> TabIds = new Collection <int>(); if (null != ButtonData.TabIds) { TabIds = ButtonData.TabIds.ToIntCollection(ExcludeMinVal: true, ExcludeDuplicates: true); } if (TabIds.Count > 0) { foreach (Int32 TabId in TabIds) { _onBeforeButtonClickSaveProps(CswConvert.ToString(TabId), ButtonData); } } else { if (_CswNbtResources.EditMode == CswEnumNbtNodeEditMode.Add) { //Client-side, we are defining a tabid as EditMode + '_tab'. This isn't great, but it's what we've got right now. _onBeforeButtonClickSaveProps(CswEnumNbtNodeEditMode.Add + "_tab", ButtonData); } } //3: If we're adding, we're always refreshing on add as the default option if (_CswNbtResources.EditMode == CswEnumNbtNodeEditMode.Add) { ButtonData.Action = CswEnumNbtButtonAction.refreshonadd; } //4: If this is the Save property, we're done; else execute the click event if (null != ButtonData.NodeTypeProp && ButtonData.NodeTypeProp.IsSaveProp) { Ret = true; } else { Ret = onButtonClick(ButtonData); } //5: If we had tabs or props coming in, we should get the current values to send back (they probably changed after the button click) if (TabIds.Count > 0) { foreach (Int32 TabId in TabIds) { _onAfterButtonClickSaveProps(CswConvert.ToString(TabId), ButtonData); } if (ButtonData.NodeIds.Count > 1) { Collection <CswPrimaryKey> MultiNodePks = new Collection <CswPrimaryKey>(); foreach (string CopyToNodeId in ButtonData.NodeIds) { CswPrimaryKey MultiNodePk = CswConvert.ToPrimaryKey(CopyToNodeId); if (null != MultiNodePk && MultiNodePk != NodeId) { MultiNodePks.Add(MultiNodePk); } } if (ButtonData.NodeIds.Count >= CswNbtBatchManager.getBatchThreshold(_CswNbtResources)) { if (ButtonData.PropIds.Count > 0) { Collection <Int32> NodeTypePropIds = new Collection <Int32>(); foreach (string PropIdAttrStr in ButtonData.PropIds) { CswPropIdAttr PropIdAttr = new CswPropIdAttr(PropIdAttrStr); NodeTypePropIds.Add(PropIdAttr.NodeTypePropId); } CswNbtBatchOpMultiEdit op = new CswNbtBatchOpMultiEdit(_CswNbtResources); CswNbtObjClassBatchOp Batch = op.makeBatchOp(Node, MultiNodePks, NodeTypePropIds); ButtonData.Action = CswEnumNbtButtonAction.batchop; ButtonData.Data["batch"] = Batch.Node.NodeLink; } if (ButtonData.MultiClick && null != ButtonData.NodeTypeProp) { CswNbtBatchOpMultiButtonClick op = new CswNbtBatchOpMultiButtonClick(_CswNbtResources); CswNbtObjClassBatchOp Batch = op.makeBatchOp(MultiNodePks, ButtonData.NodeTypeProp.PropId); ButtonData.Action = CswEnumNbtButtonAction.batchop; ButtonData.Data["batch"] = Batch.Node.NodeLink; } } else { if (ButtonData.PropIds.Count > 0) { CswNbtSdTabsAndProps Sd = new CswNbtSdTabsAndProps(_CswNbtResources); Sd.copyPropValues(Node, ButtonData.NodeIds, ButtonData.PropIds); } if (ButtonData.MultiClick) { foreach (CswPrimaryKey MultiNodeId in MultiNodePks) { CswNbtNode MultiNode = _CswNbtResources.Nodes[MultiNodeId]; if (null != MultiNode) { MultiNode.ObjClass.onButtonClick(ButtonData); } } } } } } else { if (_CswNbtResources.EditMode == CswEnumNbtNodeEditMode.Add) { _onAfterButtonClickSaveProps(CswEnumNbtNodeEditMode.Add + "_tab", ButtonData); } } } return(Ret); }