public static bool IsUserNameUnique(CswNbtResources Resources, string UserName) { CswNbtObjClassUser ExistingUserNode = Resources.Nodes.makeUserNodeFromUsername(UserName); return(null == ExistingUserNode || false == CswTools.IsPrimaryKey(ExistingUserNode.NodeId)); }
}//afterPopulateProps() protected override bool onButtonClick( NbtButtonData ButtonData ) { if( null != ButtonData && null != ButtonData.NodeTypeProp ) { string OCPPropName = ButtonData.NodeTypeProp.getObjectClassPropName(); //Remember: Save is an OCP too if( PropertyName.LoadUserContext == OCPPropName ) { ButtonData.Data["action"] = OCPPropName; ButtonData.Data["type"] = "view"; //assume it's a view unless it's an action CswEnumNbtActionName ActionName = CswNbtAction.ActionNameStringToEnum( Action.Text ); if( CswResources.UnknownEnum != ActionName ) { if( null != _CswNbtResources.Actions[ActionName] ) { CswNbtAction action = _CswNbtResources.Actions[ActionName]; ButtonData.Data["type"] = "action"; ButtonData.Data["actionname"] = action.Name.ToString(); ButtonData.Data["actionid"] = action.ActionId.ToString(); ButtonData.Data["actionurl"] = action.Url.ToString(); } } else { ButtonData.Data["selectedNodeId"] = SelectedNodeId.Text; if( null != CurrentViewMode ) { ButtonData.Data["viewmode"] = CurrentViewMode.Text; } //CswNbtViewId delimitedViewId = new CswNbtViewId( CswConvert.ToInt32( View.SelectedViewIds.ToString() ) ); CswNbtViewId delimitedViewId = View.ViewId; if( null != delimitedViewId ) { ButtonData.Data["viewid"] = delimitedViewId.ToString(); } if( null != Author.RelatedNodeId ) { if( _CswNbtResources.CurrentNbtUser.UserId != Author.RelatedNodeId ) { ButtonData.Data["userid"] = Author.RelatedNodeId.ToString(); CswNbtObjClassUser userNode = _CswNbtResources.Nodes[Author.RelatedNodeId]; if( null != userNode ) { ButtonData.Data["username"] = userNode.Username; } } } } ButtonData.Action = CswEnumNbtButtonAction.loadView; } } return true; }
public void update(CswNbtResources Resources) { _Resources = _Resources ?? Resources; if (null != _Resources) { _CurrentUser = _CurrentUser ?? _Resources.Nodes[_Resources.CurrentNbtUser.UserId]; if (null != _CurrentUser) { _CurrentUser.CurrentCache = this; _CurrentUser.postChanges(ForceUpdate: false); } } }
public static string getAssignedSDSDocumentUrl( CswNbtResources _CswNbtResources, CswPrimaryKey MaterialId ) { string url = ""; if( _CswNbtResources.Modules.IsModuleEnabled( CswEnumNbtModuleName.SDS ) ) { CswNbtMetaDataObjectClass SDSDocOC = _CswNbtResources.MetaData.getObjectClass( CswEnumNbtObjectClass.SDSDocumentClass ); CswNbtMetaDataNodeType SDSDocumentNT = SDSDocOC.FirstNodeType; CswNbtView docView = getAssignedSDSDocumentsView( _CswNbtResources, MaterialId ); // We need to re-add these properties because they were removed from the 'Assigned SDS' view in Case 31223 CswNbtMetaDataNodeTypeProp LinkNTP = SDSDocumentNT.getNodeTypePropByObjectClassProp( CswNbtPropertySetDocument.PropertyName.Link ); docView.AddViewProperty( docView.Root.ChildRelationships[0].ChildRelationships[0], LinkNTP ); CswNbtMetaDataNodeTypeProp FileNTP = SDSDocumentNT.getNodeTypePropByObjectClassProp( CswNbtPropertySetDocument.PropertyName.File ); docView.AddViewProperty( docView.Root.ChildRelationships[0].ChildRelationships[0], FileNTP ); CswNbtMetaDataNodeTypeProp FileTypeNTP = SDSDocumentNT.getNodeTypePropByObjectClassProp( CswNbtPropertySetDocument.PropertyName.FileType ); docView.AddViewProperty( docView.Root.ChildRelationships[0].ChildRelationships[0], FileTypeNTP ); // If ChemWatch is enabled, we need to check for this type of file too if( _CswNbtResources.Modules.IsModuleEnabled( CswEnumNbtModuleName.ChemWatch ) ) { CswNbtMetaDataNodeTypeProp ChemWatchNTP = SDSDocumentNT.getNodeTypePropByObjectClassProp( PropertyName.ChemWatch ); docView.AddViewProperty( docView.Root.ChildRelationships[0].ChildRelationships[0], ChemWatchNTP ); } CswNbtObjClassUser currentUserNode = _CswNbtResources.Nodes[_CswNbtResources.CurrentNbtUser.UserId]; CswNbtObjClassJurisdiction userJurisdictionNode = _CswNbtResources.Nodes[currentUserNode.JurisdictionProperty.RelatedNodeId]; ICswNbtTree docsTree = _CswNbtResources.Trees.getTreeFromView( docView, false, false, false ); docsTree.goToNthChild( 0 ); //This is a property view, so the data is on the 2nd level int childCount = docsTree.getChildNodeCount(); int lvlMatched = Int32.MinValue; string matchedFileType = ""; CswNbtTreeNodeProp matchedFileProp = null; CswNbtTreeNodeProp matchedLinkProp = null; CswNbtTreeNodeProp matchedChemWatchProp = null; CswPrimaryKey matchedNodeId = null; if( childCount > 0 ) { for( int i = 0; i < childCount; i++ ) { docsTree.goToNthChild( i ); string format = ""; string language = ""; string fileType = ""; CswNbtTreeNodeProp fileProp = null; CswNbtTreeNodeProp linkProp = null; CswNbtTreeNodeProp chemWatchProp = null; CswPrimaryKey nodeId = docsTree.getNodeIdForCurrentPosition(); foreach( CswNbtTreeNodeProp prop in docsTree.getChildNodePropsOfNode() ) { CswNbtMetaDataNodeTypeProp docNTP = _CswNbtResources.MetaData.getNodeTypeProp( prop.NodeTypePropId ); switch( docNTP.getObjectClassPropName() ) { case PropertyName.Format: format = prop.Field1; break; case PropertyName.Language: language = prop.Field1; break; case PropertyName.FileType: fileType = prop.Field1; break; case PropertyName.File: fileProp = prop; break; case PropertyName.Link: linkProp = prop; break; case PropertyName.ChemWatch: chemWatchProp = prop; break; } } if( lvlMatched < 0 ) { matchedFileType = fileType; matchedFileProp = fileProp; matchedLinkProp = linkProp; matchedChemWatchProp = chemWatchProp; matchedNodeId = nodeId; lvlMatched = 0; } if( null != userJurisdictionNode ) { if( lvlMatched < 1 && format.Equals( userJurisdictionNode.Format.Value ) ) { matchedFileType = fileType; matchedFileProp = fileProp; matchedLinkProp = linkProp; matchedChemWatchProp = chemWatchProp; matchedNodeId = nodeId; lvlMatched = 1; } if( lvlMatched < 2 && language.Equals( currentUserNode.Language ) ) { matchedFileType = fileType; matchedFileProp = fileProp; matchedLinkProp = linkProp; matchedChemWatchProp = chemWatchProp; matchedNodeId = nodeId; lvlMatched = 2; } if( lvlMatched < 3 && format.Equals( userJurisdictionNode.Format.Value ) && language.Equals( currentUserNode.Language ) ) { matchedFileType = fileType; matchedFileProp = fileProp; matchedLinkProp = linkProp; matchedChemWatchProp = chemWatchProp; matchedNodeId = nodeId; lvlMatched = 3; } } docsTree.goToParentNode(); } switch( matchedFileType ) { case CswEnumDocumentFileTypes.File: int jctnodepropid = CswConvert.ToInt32( matchedFileProp.JctNodePropId ); url = CswNbtNodePropBlob.getLink( jctnodepropid, matchedNodeId ); break; case CswEnumDocumentFileTypes.Link: CswNbtMetaDataNodeTypeProp linkNTP = SDSDocumentNT.getNodeTypePropByObjectClassProp( PropertyName.Link ); //url = CswNbtNodePropLink.GetFullURL( linkNTP.Attribute1, matchedLinkProp.Field1_Big, linkNTP.Attribute2 ); url = CswNbtNodePropLink.GetFullURL( linkNTP.DesignNode.getAttributeValueByColumn( CswEnumNbtPropertyAttributeColumn.Attribute1 ), matchedLinkProp.Field1_Big, linkNTP.DesignNode.getAttributeValueByColumn( CswEnumNbtPropertyAttributeColumn.Attribute2 ) ); break; case CswEnumDocumentFileTypes.ChemWatch: url = "Services/ChemWatch/GetSDSDocument?filename=" + matchedChemWatchProp.Field1; break; } } } return url; }
public void Transfer(CswNbtObjClassUser NewUser) { _Transferer.Transfer(NewUser); }
public void UpdateOwner(CswNbtObjClassUser NewOwner) { _Ownerer.UpdateOwner(NewOwner); }
/// <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()
/// <summary> /// Extract report parameters for a report /// </summary> /// <param name="UserNode">Use this user for matching parameter values</param> /// <param name="SourceNode">Use this node for matching parameter values</param> /// <returns></returns> public Dictionary <string, string> ExtractReportParams(CswNbtObjClassUser UserNode = null, CswNbtNode SourceNode = null) { Dictionary <string, string> reportParams = new Dictionary <string, string>(); MatchCollection matchedParams = null; if (false == string.IsNullOrEmpty(WebService.Text)) { matchedParams = Regex.Matches(WebService.Text, @"\{([\s\w0-9])+\}"); } else if (false == string.IsNullOrEmpty(SQL.Text)) { matchedParams = Regex.Matches(SQL.Text, @"\{([\s\w0-9])+\}"); } foreach (Match match in matchedParams) { string paramName = match.Value.Replace('{', ' ').Replace('}', ' ').Trim(); //remove the '{' and '}' and whitespace string replacementVal = ""; if (null != UserNode) { if (paramName == ControlledParams.UserId || paramName == ControlledParams.NodeId) { replacementVal = UserNode.Node.NodeId.PrimaryKey.ToString(); } else if (paramName == ControlledParams.RoleId) { replacementVal = UserNode.RoleId.PrimaryKey.ToString(); } else { CswNbtMetaDataNodeTypeProp userNTP = UserNode.NodeType.getNodeTypeProp(paramName); if (null != userNTP) { replacementVal = UserNode.Node.Properties[userNTP].Gestalt; } } } // if( null != UserNode ) if (null != SourceNode) { CswNbtMetaDataNodeTypeProp sourceNTP = SourceNode.getNodeType().getNodeTypeProp(paramName); if (null != sourceNTP) { replacementVal = SourceNode.Properties[sourceNTP].Gestalt; } } if (false == string.IsNullOrEmpty(SQL.Text)) { if (CswSqlAnalysis.doesSqlContainDmlOrDdl(replacementVal)) { throw (new CswDniException("Parameter contains sql: " + paramName)); } } if (false == reportParams.ContainsKey(paramName)) { reportParams.Add(paramName, replacementVal); } } return(reportParams); }