} // Run() public JObject getView(string ViewId, ICswNbtUser CurrentUser) { JObject RetJson = new JObject(); // Get the full XML for the entire view CswNbtViewId NbtViewId = new CswNbtViewId(ViewId); if (NbtViewId.isSet()) { CswNbtView View = _CswNbtResources.ViewSelect.restoreView(NbtViewId); // case 20083 if (_ForMobile) { RetJson.Add(_getSearchNodes(View)); } ICswNbtTree Tree = _CswNbtResources.Trees.getTreeFromView(_CswNbtResources.CurrentNbtUser, View, true, false, false); if (Tree.getChildNodeCount() > 0) { JObject NodesObj = new JObject(); RetJson["nodes"] = NodesObj; _runTreeNodesRecursive(Tree, NodesObj); } else { RetJson["nodes"] = new JObject(); RetJson["nodes"][NodeIdPrefix + Int32.MinValue] = "No Results"; } } return(RetJson); } // Run()
public string renderViewPropFilter(ICswNbtUser RunAsUser, CswNbtViewPropertyFilter CswNbtViewPropertyFilterIn, Dictionary <string, string> ParameterCollection, int FilterNumber) { // BZ 7941 bool UseNumericHack = CswNbtViewPropertyFilterIn.SubfieldName == SubFieldName.Value; return(_CswNbtFieldTypeRuleDefault.renderViewPropFilter(RunAsUser, CswNbtViewPropertyFilterIn, ParameterCollection, FilterNumber, UseNumericHack)); }//makeWhereClause()
public string renderViewPropFilter(ICswNbtUser RunAsUser, CswNbtViewPropertyFilter CswNbtViewPropertyFilterIn, Dictionary <string, string> ParameterCollection, int FilterNumber) { string ReturnVal = string.Empty; CswNbtSubField CswNbtSubField = null; CswNbtSubField = SubFields[CswNbtViewPropertyFilterIn.SubfieldName]; if (!CswNbtSubField.SupportedFilterModes.Contains(CswNbtViewPropertyFilterIn.FilterMode)) { throw (new CswDniException("Filter mode " + CswNbtViewPropertyFilterIn.FilterMode.ToString() + " is not supported for sub field: " + CswNbtSubField.Name + "; view name is: " + CswNbtViewPropertyFilterIn.View.ViewName)); } // Are we using a Date filter? if (CswNbtSubField.Name == StartDateSubField.Name) { return(CswNbtFieldTypeRuleDateImpl.renderViewPropFilter(RunAsUser, _CswNbtFieldResources, CswNbtViewPropertyFilterIn, CswNbtSubField.Column)); } else { ReturnVal = _CswNbtFieldTypeRuleDefault.renderViewPropFilter(RunAsUser, CswNbtViewPropertyFilterIn, ParameterCollection, FilterNumber); } return(ReturnVal); }//makeWhereClause()
/// <summary> /// Sets a permission for the given Action for the user /// </summary> public void set(CswNbtAction Action, ICswNbtUser User, bool value) { if (User != null) { set(Action, _getRole(User.RoleId), value); } }
public CswNbtWebServiceContainer(CswNbtResources CswNbtResources) { _CswNbtResources = CswNbtResources; _CurrentUser = _CswNbtResources.CurrentNbtUser; CultureInfo Culture = Thread.CurrentThread.CurrentCulture; _TextInfo = Culture.TextInfo; }
public CswNbtPermitInfo(CswNbtResources CswNbtResources, ICswNbtUser CswNbtUser, CswNbtObjClassRole CswNbtObjClassRole, CswNbtMetaDataNodeType NodeTypeIn, CswEnumNbtNodeTypePermission nodeTypePermissionIn, CswPrimaryKey CswPrimaryKey, CswNbtMetaDataNodeTypeProp PropTypeIn) { PropType = PropTypeIn; _NodePrimeKey = CswPrimaryKey; NodeType = NodeTypeIn; _CswNbtResources = CswNbtResources; _CswNbtUser = CswNbtUser; _CswNbtObjClassRole = CswNbtObjClassRole; NodeTypePermission = nodeTypePermissionIn; }//ctor
public CswNbtTreeLoaderFromXmlViewByLevel(CswNbtResources CswNbtResources, ICswNbtUser RunAsUser, ICswNbtTree pCswNbtTree, CswNbtView View, bool IncludeSystemNodes, bool IncludeHiddenNodes, bool IncludeTempNodes) : base(pCswNbtTree) { _CswNbtResources = CswNbtResources; _RunAsUser = RunAsUser; _View = View; _IncludeSystemNodes = IncludeSystemNodes; _IncludeHiddenNodes = IncludeHiddenNodes; _IncludeTempNodes = IncludeTempNodes || View.IncludeTempNodes; }
public CswNbtActRequesting(CswNbtResources CswNbtResources, ICswNbtUser ThisUser = null) { _CswNbtResources = CswNbtResources; if (null == ThisUser) { _ThisUser = _CswNbtResources.CurrentNbtUser; } _RequestOC = _CswNbtResources.MetaData.getObjectClass(CswEnumNbtObjectClass.RequestClass); _RequestItemOC = _CswNbtResources.MetaData.getObjectClass(CswEnumNbtObjectClass.RequestItemClass); }
/// <summary> /// Instance a Tree from a View /// </summary> public ICswNbtTree getTreeFromView(ICswNbtUser RunAsUser, CswNbtView View, bool RequireViewPermissions, bool IncludeSystemNodes, bool IncludeHiddenNodes, bool IncludeTempNodes = false, Int32 PerLevelNodeLimit = Int32.MinValue) { ICswNbtTree ReturnVal = new CswNbtTreeNodes("", View, _CswNbtResources, _CswNbtNodeCollection, IsFullyPopulated: true); CswNbtTreeLoaderFromXmlViewByLevel TreeLoader = new CswNbtTreeLoaderFromXmlViewByLevel(_CswNbtResources, RunAsUser, ReturnVal, View, IncludeSystemNodes, IncludeHiddenNodes, IncludeTempNodes); TreeLoader.load(RequireViewPermissions, PerLevelNodeLimit); return(ReturnVal); }//getTreeFromView()
private void _initPermissionInfo(CswNbtObjClassRole CswNbtObjClassRole, ICswNbtUser CswNbtUser, CswNbtMetaDataNodeType NodeType, CswEnumNbtNodeTypePermission Permission, CswPrimaryKey CswPrimaryKey = null, CswNbtMetaDataNodeTypeProp PropType = null) { if (null == CswNbtObjClassRole) { CswPrimaryKey RoleId = null; if (null != CswNbtUser) { RoleId = CswNbtUser.RoleId; } else { if (null != _CswNbtResources.CurrentNbtUser) { CswNbtUser = _CswNbtResources.CurrentNbtUser; RoleId = CswNbtUser.RoleId; } }//if the user we got is null if (null != RoleId) { CswNbtObjClassRole = _getRole(RoleId); } //if we were able to get a roleid } //if the role we got is null if (null != CswNbtObjClassRole) { CswNbtPermitInfoKey CswNbtPermitInfoKey = new CswNbtPermitInfoKey(CswNbtObjClassRole, NodeType); if (_PermitInfoItems.ContainsKey(CswNbtPermitInfoKey)) { _CswNbtPermitInfo = _PermitInfoItems[CswNbtPermitInfoKey]; //must reset these per-request because they change per request for the same role and nodetype (e.g., see allowAny() ) if (null != CswPrimaryKey) { _CswNbtPermitInfo.NodePrimeKey = CswPrimaryKey; } if (null != PropType) { _CswNbtPermitInfo.PropType = PropType; } _CswNbtPermitInfo.NodeTypePermission = Permission; } else { _CswNbtPermitInfo = new CswNbtPermitInfo(_CswNbtResources, CswNbtUser, CswNbtObjClassRole, NodeType, Permission, CswPrimaryKey, PropType); _PermitInfoItems.Add(CswNbtPermitInfoKey, _CswNbtPermitInfo); } } else //the permit info in this case is not catalogued, and permit info won't allow any ops to proceed { _CswNbtPermitInfo = new CswNbtPermitInfo(_CswNbtResources, CswNbtUser, CswNbtObjClassRole, NodeType, Permission, CswPrimaryKey, PropType); } //if we were able to retrieve a role } //_initPermissionInfo()
/// <summary> /// Instance a Tree from a Universal Search /// </summary> public ICswNbtTree getTreeFromSearch(ICswNbtUser RunAsUser, string SearchTerm, CswEnumSqlLikeMode SearchType, string WhereClause, bool RequireViewPermissions, bool IncludeSystemNodes, bool IncludeHiddenNodes, bool SingleNodetype, bool OnlyMergeableNodeTypes, Int32 PerLevelNodeLimit = Int32.MinValue, List <string> ExcludeNodeIds = null) { ICswNbtTree ReturnVal = new CswNbtTreeNodes("", null, _CswNbtResources, _CswNbtNodeCollection, IsFullyPopulated: true); CswNbtTreeLoaderFromSearchByLevel TreeLoader = new CswNbtTreeLoaderFromSearchByLevel(_CswNbtResources, RunAsUser, ReturnVal, SearchTerm, SearchType, WhereClause, IncludeSystemNodes, IncludeHiddenNodes, SingleNodetype, OnlyMergeableNodeTypes, ExcludeNodeIds); TreeLoader.load(RequireViewPermissions, PerLevelNodeLimit); return(ReturnVal); } //getTreeFromSearch()
public string renderViewPropFilter(ICswNbtUser RunAsUser, CswNbtViewPropertyFilter CswNbtViewPropertyFilterIn, Dictionary <string, string> ParameterCollection, int FilterNumber, bool UseNumericHack = false) { CswNbtSubField CswNbtSubField = null; CswNbtSubField = SubFields[CswNbtViewPropertyFilterIn.SubfieldName]; if (CswNbtSubField == null) { throw new CswDniException(CswEnumErrorType.Error, "Misconfigured View", "CswNbtFieldTypeRuleDefaultImpl.renderViewPropFilter() could not find SubField '" + CswNbtViewPropertyFilterIn.SubfieldName + "' in field type '" + ((CswNbtViewProperty)CswNbtViewPropertyFilterIn.Parent).FieldType.ToString() + "' for view '" + CswNbtViewPropertyFilterIn.View.ViewName + "'"); } return(_CswNbtFieldResources.CswNbtPropFilterSql.renderViewPropFilter(RunAsUser, CswNbtViewPropertyFilterIn, CswNbtSubField, ParameterCollection, FilterNumber, UseNumericHack)); }//makeWhereClause()
public string renderViewPropFilter(ICswNbtUser RunAsUser, CswNbtViewPropertyFilter CswNbtViewPropertyFilterIn, Dictionary <string, string> ParameterCollection, int FilterNumber) { CswNbtSubField CswNbtSubField = null; CswNbtSubField = SubFields[CswNbtViewPropertyFilterIn.SubfieldName]; if (!CswNbtSubField.SupportedFilterModes.Contains(CswNbtViewPropertyFilterIn.FilterMode)) { throw (new CswDniException("Filter mode " + CswNbtViewPropertyFilterIn.FilterMode.ToString() + " is not supported for sub field: " + CswNbtSubField.Name + "; view name is: " + CswNbtViewPropertyFilterIn.View.ViewName)); } string ValueColumn = _FilterTableAlias + CswNbtSubField.Column.ToString(); string ReturnVal = ""; if (CswNbtViewPropertyFilterIn.FilterMode == CswEnumNbtFilterMode.Equals) { if (CswNbtViewPropertyFilterIn.Value == "1" || CswNbtViewPropertyFilterIn.Value.ToLower() == "true") { ReturnVal = ValueColumn + " = '1' "; } else if (CswNbtViewPropertyFilterIn.Value == "0" || CswNbtViewPropertyFilterIn.Value.ToLower() == "false") { ReturnVal = ValueColumn + " = '0' "; } else { ReturnVal = ValueColumn + " is null"; } } else if (CswNbtViewPropertyFilterIn.FilterMode == CswEnumNbtFilterMode.NotEquals) { if (CswNbtViewPropertyFilterIn.Value == "1" || CswNbtViewPropertyFilterIn.Value.ToLower() == "true") { ReturnVal = "(" + ValueColumn + " = '0' or " + ValueColumn + " is null) "; } else if (CswNbtViewPropertyFilterIn.Value == "0" || CswNbtViewPropertyFilterIn.Value.ToLower() == "false") { ReturnVal = "(" + ValueColumn + " = '1' or " + ValueColumn + " is null) "; } else { ReturnVal = "(" + ValueColumn + " = '1' or " + ValueColumn + " = '0') "; } } else { throw new CswDniException(CswEnumErrorType.Error, "Invalid filter", "An invalid FilterMode was encountered in CswNbtFieldTypeRuleLogical.renderViewPropFilter()"); } return(ReturnVal); }
public CswNbtWebServiceInspectionDesign(CswNbtResources CswNbtResources) { _CswNbtResources = CswNbtResources; if (false == _CswNbtResources.Permit.can(CswEnumNbtActionName.Create_Inspection)) { throw new CswDniException(CswEnumErrorType.Error, "You do not have permission for this Action.", "Attempted to access the Inspection Design wizard with role of " + _CswNbtResources.CurrentNbtUser.Rolename); } _CurrentUser = _CswNbtResources.CurrentNbtUser; CultureInfo Culture = Thread.CurrentThread.CurrentCulture; _TextInfo = Culture.TextInfo; }
public string renderViewPropFilter(ICswNbtUser RunAsUser, CswNbtViewPropertyFilter CswNbtViewPropertyFilterIn, Dictionary <string, string> ParameterCollection, int FilterNumber) { //return ( _CswNbtFieldTypeRuleDefault.renderViewPropFilter( RunAsUser, SubFields, CswNbtViewPropertyFilterIn ) ); CswEnumNbtSubFieldName OldSubfieldName = CswNbtViewPropertyFilterIn.SubfieldName; CswEnumNbtFilterMode OldFilterMode = CswNbtViewPropertyFilterIn.FilterMode; string OldValue = CswNbtViewPropertyFilterIn.Value; // BZ 8558 if (OldSubfieldName == SubFieldName.Value && OldValue.ToLower() == "me") { CswNbtViewProperty Prop = (CswNbtViewProperty)CswNbtViewPropertyFilterIn.Parent; ICswNbtMetaDataProp MetaDataProp = null; if (Prop.Type == CswEnumNbtViewPropType.NodeTypePropId) { MetaDataProp = Prop.NodeTypeProp; } else if (Prop.Type == CswEnumNbtViewPropType.ObjectClassPropId) { MetaDataProp = _CswNbtFieldResources.CswNbtResources.MetaData.getObjectClassProp(Prop.ObjectClassPropId); } // Could be a propref of a propref, so we can't look at the relationship //ICswNbtMetaDataProp RelationshipProp = null; //if( MetaDataProp.FKType == NbtViewPropType.NodeTypePropId.ToString() ) // RelationshipProp = _CswNbtFieldResources.CswNbtResources.MetaData.getNodeTypeProp( MetaDataProp.FKValue); //else if( MetaDataProp.FKType == NbtViewPropType.ObjectClassPropId.ToString() ) // RelationshipProp = _CswNbtFieldResources.CswNbtResources.MetaData.getObjectClassProp( MetaDataProp.FKValue ); //if( RelationshipProp != null && RelationshipProp.IsUserRelationship() ) //{ if (CswNbtViewPropertyFilterIn.Value.ToLower() == "me") { CswNbtViewPropertyFilterIn.SubfieldName = SubFieldName.Value; CswNbtViewPropertyFilterIn.FilterMode = CswEnumNbtFilterMode.Equals; CswNbtViewPropertyFilterIn.Value = _CswNbtFieldResources.CswNbtResources.Nodes[RunAsUser.UserId].NodeName; } //} } string ret = _CswNbtFieldTypeRuleDefault.renderViewPropFilter(RunAsUser, CswNbtViewPropertyFilterIn, ParameterCollection, FilterNumber); CswNbtViewPropertyFilterIn.SubfieldName = OldSubfieldName; CswNbtViewPropertyFilterIn.FilterMode = OldFilterMode; CswNbtViewPropertyFilterIn.Value = OldValue; return(ret); }//makeWhereClause()
/// <summary> /// Checks to see if a view is visible to a given user /// </summary> public bool isVisible(CswNbtView View, ICswNbtUser User, bool IncludeEmptyViews, bool SearchableOnly, bool ForEdit = false) { return(((View.Root.ChildRelationships.Count > 0 && ( View.Root.ChildRelationships.Any(R => R.SecondType != CswEnumNbtViewRelatedIdType.NodeTypeId || _CswNbtResources.Permit.canAnyTab( CswEnumNbtNodeTypePermission.View, _CswNbtResources.MetaData.getNodeType(R.SecondId), User))) ) || IncludeEmptyViews) && View.IsFullyEnabled() && (IncludeEmptyViews || View.ViewMode != CswEnumNbtViewRenderingMode.Grid || null != View.findFirstProperty()) && (!SearchableOnly || View.IsSearchable()) && (false == ForEdit || (_CswNbtResources.CurrentNbtUser.Username == CswNbtObjClassUser.ChemSWAdminUsername || false == CswConvert.ToBoolean(View.IsSystem)))); }
/// <summary> /// Returns true if the user has the appropriate permissions for the Action /// </summary> public bool can(CswNbtAction Action, ICswNbtUser User) { bool ret = false; if (null != Action && null != User) { if (User is CswNbtSystemUser || User.Username == CswNbtObjClassUser.ChemSWAdminUsername) { ret = true; } else { ret = can(Action, _getRole(User.RoleId)); } } return(ret); } // can( CswNbtAction Action, ICswNbtUser User )
public CswNbtTreeLoaderFromSearchByLevel(CswNbtResources CswNbtResources, ICswNbtUser RunAsUser, ICswNbtTree pCswNbtTree, string SearchTerm, CswEnumSqlLikeMode SearchType, string WhereClause, bool IncludeSystemNodes, bool IncludeHiddenNodes, bool SingleNodetype, bool OnlyMergeableNodeTypes, List <string> ExcludeNodeIds = null) : base(pCswNbtTree) { _CswNbtResources = CswNbtResources; _RunAsUser = RunAsUser; _SearchTerm = _makeSafeSearchTerm(SearchTerm); _SearchType = SearchType; _ExtraWhereClause = WhereClause; _IncludeSystemNodes = IncludeSystemNodes; _IncludeHiddenNodes = IncludeHiddenNodes; _SingleNodetype = SingleNodetype; _OnlyMergeableNodeTypes = OnlyMergeableNodeTypes; if (null != ExcludeNodeIds) { _ExcludeNodeIds = new CswCommaDelimitedString(string.Join(",", ExcludeNodeIds.ToArray())); } }
public JObject getViewsList(string ParentId, ICswNbtUser CurrentUser) { // All Views JObject RetJson = new JObject(); Dictionary <CswNbtViewId, CswNbtView> MobileViews = _CswNbtResources.ViewSelect.getVisibleViews(string.Empty, CurrentUser, false, _ForMobile, false, NbtViewRenderingMode.Any); if (MobileViews.Count == 0) { RetJson["-1"] = "No Views Have Been Configured for Mobile."; } else { foreach (CswNbtView MobileView in MobileViews.Values) { RetJson[MobileView.ViewId.ToString()] = MobileView.ViewName; } } return(RetJson); } // Run()
public Collection <CswNbtSearch> getSearches(ICswNbtUser User = null) { Collection <CswNbtSearch> ret = new Collection <CswNbtSearch>(); if (null == User) { User = _CswNbtResources.CurrentNbtUser; } if (null != User && null != User.UserId && Int32.MinValue != User.UserId.PrimaryKey) { CswTableSelect SearchSelect = _CswNbtResources.makeCswTableSelect("CswNbtSearchManager_getSearches", SearchTableName); DataTable SearchTable = SearchSelect.getTable("userid", User.UserId.PrimaryKey); foreach (DataRow SearchRow in SearchTable.Rows) { CswNbtSearch thisSearch = new CswNbtSearch(_CswNbtResources); thisSearch.FromSearchRow(SearchRow); ret.Add(thisSearch); } } return(ret); } // getSearches()
public string renderViewPropFilter(ICswNbtUser RunAsUser, CswNbtViewPropertyFilter CswNbtViewPropertyFilterIn, Dictionary <string, string> ParameterCollection, int FilterNumber) { CswEnumNbtSubFieldName OldSubfieldName = CswNbtViewPropertyFilterIn.SubfieldName; CswEnumNbtFilterMode OldFilterMode = CswNbtViewPropertyFilterIn.FilterMode; string OldValue = CswNbtViewPropertyFilterIn.Value; // BZ 8558 if (OldSubfieldName == SubFieldName.Name && OldValue.ToLower() == "me") { CswNbtViewProperty Prop = (CswNbtViewProperty)CswNbtViewPropertyFilterIn.Parent; ICswNbtMetaDataProp MetaDataProp = null; if (Prop.Type == CswEnumNbtViewPropType.NodeTypePropId) { MetaDataProp = Prop.NodeTypeProp; } else if (Prop.Type == CswEnumNbtViewPropType.ObjectClassPropId) { MetaDataProp = _CswNbtFieldResources.CswNbtResources.MetaData.getObjectClassProp(Prop.ObjectClassPropId); } if (MetaDataProp != null && MetaDataProp.IsUserRelationship()) { if (CswNbtViewPropertyFilterIn.Value.ToLower() == "me" && false == (RunAsUser is CswNbtSystemUser)) { CswNbtViewPropertyFilterIn.SubfieldName = SubFieldName.NodeID; CswNbtViewPropertyFilterIn.FilterMode = CswEnumNbtFilterMode.Equals; CswNbtViewPropertyFilterIn.Value = RunAsUser.UserId.PrimaryKey.ToString(); } } } string ret = _CswNbtFieldTypeRuleDefault.renderViewPropFilter(RunAsUser, CswNbtViewPropertyFilterIn, ParameterCollection, FilterNumber); CswNbtViewPropertyFilterIn.SubfieldName = OldSubfieldName; CswNbtViewPropertyFilterIn.FilterMode = OldFilterMode; CswNbtViewPropertyFilterIn.Value = OldValue; return(ret); }
/// <summary> /// True if the user is allowed to edit quotas /// </summary> public bool UserCanEditQuotas( ICswNbtUser User ) { return ( User.Username == CswNbtObjClassUser.ChemSWAdminUsername || User is CswNbtSystemUser ); }
public string renderViewPropFilter(ICswNbtUser RunAsUser, CswNbtViewPropertyFilter CswNbtViewPropertyFilterIn, Dictionary <string, string> ParameterCollection, int FilterNumber) { CswNbtSubField CswNbtSubField = null; CswNbtSubField = SubFields[CswNbtViewPropertyFilterIn.SubfieldName]; if (CswNbtSubField == null) { throw new CswDniException(CswEnumErrorType.Error, "Misconfigured View", "CswNbtFieldTypeRuleDefaultImpl.renderViewPropFilter() could not find SubField '" + CswNbtViewPropertyFilterIn.SubfieldName + "' in field type '" + ((CswNbtViewProperty)CswNbtViewPropertyFilterIn.Parent).FieldType.ToString() + "' for view '" + CswNbtViewPropertyFilterIn.View.ViewName + "'"); } if (!CswNbtSubField.SupportedFilterModes.Contains(CswNbtViewPropertyFilterIn.FilterMode)) { throw (new CswDniException("Filter mode " + CswNbtViewPropertyFilterIn.FilterMode.ToString() + " is not supported for sub field: " + CswNbtSubField.Name + "; view name is: " + CswNbtViewPropertyFilterIn.View.ViewName)); } string ReturnVal = ""; string FullColumn = _FilterTableAlias + CswNbtSubField.Column.ToString(); if (CswNbtViewPropertyFilterIn.FilterMode == CswEnumNbtFilterMode.Contains) { // BZ 7938 // We store the nodetypes by ID, but users will search by name. So we have to decode. Collection <CswNbtMetaDataNodeType> MatchingNodeTypes = new Collection <CswNbtMetaDataNodeType>(); foreach (CswNbtMetaDataNodeType NodeType in _CswNbtFieldResources.CswNbtResources.MetaData.getNodeTypes()) { if (NodeType.NodeTypeName.ToLower().IndexOf(CswNbtViewPropertyFilterIn.Value.ToLower()) > -1) { MatchingNodeTypes.Add(NodeType); } } if (MatchingNodeTypes.Count > 0) { ReturnVal = "("; bool first = true; foreach (CswNbtMetaDataNodeType NodeType in MatchingNodeTypes) { if (!first) { ReturnVal += " or "; } ReturnVal += "'" + CswNbtNodePropNodeTypeSelect.delimiter.ToString() + "' || " + FullColumn + " || '" + CswNbtNodePropNodeTypeSelect.delimiter.ToString() + "' like '%" + CswNbtNodePropNodeTypeSelect.delimiter.ToString() + NodeType.FirstVersionNodeTypeId.ToString() + CswNbtNodePropNodeTypeSelect.delimiter.ToString() + "%'"; first = false; } ReturnVal += ")"; } else { // We didn't find a match. This is better than nothing. ReturnVal = "'" + CswNbtNodePropNodeTypeSelect.delimiter.ToString() + "' || " + FullColumn + " || '" + CswNbtNodePropNodeTypeSelect.delimiter.ToString() + "' like '%" + CswNbtNodePropNodeTypeSelect.delimiter.ToString() + CswNbtViewPropertyFilterIn.Value + CswNbtNodePropNodeTypeSelect.delimiter.ToString() + "%'"; } } else if (CswNbtViewPropertyFilterIn.FilterMode == CswEnumNbtFilterMode.NotNull) { ReturnVal = FullColumn + " is not null"; } else if (CswNbtViewPropertyFilterIn.FilterMode == CswEnumNbtFilterMode.Null) { ReturnVal = FullColumn + " is null"; } else { throw (new CswDniException("Filter mode " + CswNbtViewPropertyFilterIn.FilterMode.ToString() + " is not supported for NodeTypeSelect fields")); //break; } return(ReturnVal); }//renderViewPropFilter()
public string renderViewPropFilter(ICswNbtUser RunAsUser, CswNbtViewPropertyFilter CswNbtViewPropertyFilterIn, Dictionary <string, string> ParameterCollection, int FilterNumber) { CswNbtSubField CswNbtSubField = null; CswNbtSubField = SubFields[CswNbtViewPropertyFilterIn.SubfieldName]; if (CswNbtSubField == null) { throw new CswDniException(CswEnumErrorType.Error, "Misconfigured View", "CswNbtFieldTypeRuleDefaultImpl.renderViewPropFilter() could not find SubField '" + CswNbtViewPropertyFilterIn.SubfieldName + "' in field type '" + ((CswNbtViewProperty)CswNbtViewPropertyFilterIn.Parent).FieldType.ToString() + "' for view '" + CswNbtViewPropertyFilterIn.View.ViewName + "'"); } if (!CswNbtSubField.SupportedFilterModes.Contains(CswNbtViewPropertyFilterIn.FilterMode)) { throw (new CswDniException("Filter mode " + CswNbtViewPropertyFilterIn.FilterMode.ToString() + " is not supported for sub field: " + CswNbtSubField.Name + "; view name is: " + CswNbtViewPropertyFilterIn.View.ViewName)); } string ReturnVal = ""; string FullColumn = _FilterTableAlias + CswNbtSubField.Column.ToString(); if (CswNbtViewPropertyFilterIn.FilterMode == CswEnumNbtFilterMode.Contains) { // BZ 7938 // We store the users by ID, but search by name. So we have to decode. Collection <CswPrimaryKey> MatchingUserKeys = new Collection <CswPrimaryKey>(); //ICswNbtTree UsersTree = _CswNbtFieldResources.CswNbtResources.Trees.getTreeFromObjectClass( CswNbtMetaDataObjectClassName.NbtObjectClass.UserClass ); //for( Int32 u = 0; u < UsersTree.getChildNodeCount(); u++ ) //{ // UsersTree.goToNthChild( u ); CswNbtMetaDataObjectClass UserOC = _CswNbtFieldResources.CswNbtResources.MetaData.getObjectClass(CswEnumNbtObjectClass.UserClass); foreach (CswNbtNode UserNode in UserOC.getNodes(false, false)) { string UserNodeName = UserNode.NodeName; //UsersTree.getNodeNameForCurrentPosition(); if (UserNodeName.ToLower().IndexOf(CswNbtViewPropertyFilterIn.Value) > -1) { MatchingUserKeys.Add(UserNode.NodeId); //UsersTree.getNodeIdForCurrentPosition() ); } //UsersTree.goToParentNode(); } if (MatchingUserKeys.Count > 0) { ReturnVal = "("; bool first = true; foreach (CswPrimaryKey UserKey in MatchingUserKeys) { if (!first) { ReturnVal += " or "; } ReturnVal += "'" + CswNbtNodePropUserSelect.delimiter.ToString() + "' || " + FullColumn + " || '" + CswNbtNodePropUserSelect.delimiter.ToString() + "' like '%" + CswNbtNodePropUserSelect.delimiter.ToString() + UserKey.PrimaryKey.ToString() + CswNbtNodePropUserSelect.delimiter.ToString() + "%'"; first = false; } ReturnVal += ")"; } else { // We didn't find a match. This is better than nothing. ReturnVal = "'" + CswNbtNodePropUserSelect.delimiter.ToString() + "' || " + FullColumn + " || '" + CswNbtNodePropUserSelect.delimiter.ToString() + "' like '%" + CswNbtNodePropUserSelect.delimiter.ToString() + CswNbtViewPropertyFilterIn.Value + CswNbtNodePropUserSelect.delimiter.ToString() + "%'"; } } else if (CswNbtViewPropertyFilterIn.FilterMode == CswEnumNbtFilterMode.NotNull) { ReturnVal = FullColumn + " is not null"; } else if (CswNbtViewPropertyFilterIn.FilterMode == CswEnumNbtFilterMode.Null) { ReturnVal = FullColumn + " is null"; } else { throw (new CswDniException("Filter mode " + CswNbtViewPropertyFilterIn.FilterMode.ToString() + " is not supported for UserSelect fields")); //break; } return(ReturnVal); }//renderViewPropFilter()
public static void jAddAuthenticationStatus(CswNbtResources CswNbtResources, CswSessionResourcesNbt CswSessionResources, JObject SvcReturn, CswEnumAuthenticationStatus AuthenticationStatusIn, bool IsMobile = false) { if (SvcReturn != null) { SvcReturn["AuthenticationStatus"] = AuthenticationStatusIn.ToString(); SvcReturn["AuthenticationStatusText"] = CswEnumAuthenticationStatus.EuphamizedText[AuthenticationStatusIn]; if (false == IsMobile) { SvcReturn["server"] = Environment.MachineName; if (null != CswNbtResources) { if (null != CswNbtResources.CswSessionManager) { SvcReturn["timeout"] = CswDateTime.ToClientAsJavascriptString(CswNbtResources.CswSessionManager.TimeoutDate); } if (AuthenticationStatusIn == CswEnumAuthenticationStatus.ExpiredPassword) { ICswNbtUser CurrentUser = CswNbtResources.CurrentNbtUser; SvcReturn.Add(new JProperty("nodeid", CurrentUser.UserId.ToString())); CswNbtNodeKey FakeKey = new CswNbtNodeKey() { NodeId = CurrentUser.UserId, NodeSpecies = CswEnumNbtNodeSpecies.Plain, NodeTypeId = CurrentUser.UserNodeTypeId, ObjectClassId = CurrentUser.UserObjectClassId }; SvcReturn.Add(new JProperty("nodekey", FakeKey.ToString())); CswPropIdAttr PasswordPropIdAttr = new CswPropIdAttr(CurrentUser.UserId, CurrentUser.PasswordPropertyId); SvcReturn.Add(new JProperty("passwordpropid", PasswordPropIdAttr.ToString())); } SvcReturn["timer"] = new JObject(); SvcReturn["timer"]["serverinit"] = Math.Round(CswNbtResources.ServerInitTime, 3); CswEnumLogLevels LogLevel = CswNbtResources.ConfigVbls.getConfigVariableValue(CswEnumConfigurationVariableNames.Logging_Level); if (LogLevel == CswNbtResources.UnknownEnum) { LogLevel = CswEnumLogLevels.Error; } SvcReturn["LogLevel"] = LogLevel.ToString().ToLower(); SvcReturn["timer"]["customerid"] = CswNbtResources.AccessId; SvcReturn["timer"]["dbinit"] = Math.Round(CswNbtResources.CswLogger.DbInitTime, 3); SvcReturn["timer"]["dbquery"] = Math.Round(CswNbtResources.CswLogger.DbQueryTime, 3); SvcReturn["timer"]["dbcommit"] = Math.Round(CswNbtResources.CswLogger.DbCommitTime, 3); SvcReturn["timer"]["dbdeinit"] = Math.Round(CswNbtResources.CswLogger.DbDeInitTime, 3); SvcReturn["timer"]["treeloadersql"] = Math.Round(CswNbtResources.CswLogger.TreeLoaderSQLTime, 3); SvcReturn["timer"]["servertotal"] = Math.Round(CswNbtResources.TotalServerTime, 3); // Return any messages acquired along the way if (null != CswNbtResources.Messages && CswNbtResources.Messages.Count > 0) { JArray Messages = new JArray(); SvcReturn["messages"] = Messages; foreach (CswWebSvcReturnBase.ErrorMessage Message in CswNbtResources.Messages) { Messages.Add(Message.ToJObject()); } } }//if( null != CswNbtResources ) } } }
// UseNumericHack: SEE BZ 6661 public string renderViewPropFilter(ICswNbtUser RunAsUser, CswNbtViewPropertyFilter CswNbtViewPropertyFilterIn, CswNbtSubField CswNbtSubField, Dictionary <string, string> ParameterCollection, int FilterNumber, bool UseNumericHack) { if (CswNbtSubField == null) { throw (new CswDniException("CswNbtPropFilterSql.renderViewPropFilter() got a null CswNbtSubField for view: " + CswNbtViewPropertyFilterIn.View.ViewName)); } if (false == CswNbtSubField.SupportedFilterModes.Contains(CswNbtViewPropertyFilterIn.FilterMode)) { throw (new CswDniException("Filter mode " + CswNbtViewPropertyFilterIn.FilterMode.ToString() + " is not supported for sub field: " + CswNbtSubField.Name + "; view name is: " + CswNbtViewPropertyFilterIn.View.ViewName)); } string Column = CswNbtSubField.Column.ToString(); string FilterTableAlias = _FilterTableAlias; //if( CswNbtSubField.RelationalColumn != string.Empty ) //{ // Column = CswNbtSubField.RelationalColumn; // FilterTableAlias = "n."; //} string ParameterName = "filt" + FilterNumber + "filtval"; string ReturnVal = ""; //This is sort of a hacky way of dealing with the bz # 6936 issue. But since it's all going to need to be //revisited for bz #6682 anyway, this seems like the clearest and simplest way of handling the problem. //Also, see 7095 if (CswEnumNbtFilterMode.Null != CswNbtViewPropertyFilterIn.FilterMode && CswEnumNbtFilterMode.NotNull != CswNbtViewPropertyFilterIn.FilterMode) { if (UseNumericHack) { if ( CswEnumNbtFilterMode.Begins == CswNbtViewPropertyFilterIn.FilterMode || CswEnumNbtFilterMode.Contains == CswNbtViewPropertyFilterIn.FilterMode || CswEnumNbtFilterMode.Ends == CswNbtViewPropertyFilterIn.FilterMode ) { throw (new CswDniException("Filter mode " + CswNbtViewPropertyFilterIn.FilterMode.ToString() + " is not supported for numeric values")); } string NumericValueColumn = " nvl(" + FilterTableAlias + Column + ", 0) "; ReturnVal = NumericValueColumn; if (_numericHackFilterModes.ContainsKey(CswNbtViewPropertyFilterIn.FilterMode)) { ReturnVal += _numericHackFilterModes[CswNbtViewPropertyFilterIn.FilterMode]; } else { throw new CswDniException(CswEnumErrorType.Error, "Invalid filter", "An invalid FilterMode was encountered in CswNbtPropFilterSql.renderViewPropFilter()) { " + CswNbtViewPropertyFilterIn.FilterMode.ToString()); } ReturnVal += ":" + ParameterName; ParameterCollection.Add(ParameterName, CswNbtViewPropertyFilterIn.Value); if (CswNbtViewPropertyFilterIn.FilterMode == CswEnumNbtFilterMode.In) { ReturnVal += ")"; } } else { string CasePrepend = ""; string CaseAppend = ""; if (!CswNbtViewPropertyFilterIn.CaseSensitive) { CasePrepend = "lower("; CaseAppend = ")"; } string NonNumericValueColumn = CasePrepend + FilterTableAlias + Column + CaseAppend; string SafeValue = CswNbtViewPropertyFilterIn.Value.Replace("'", "''"); // case 21455 if (CswNbtViewPropertyFilterIn.FilterMode == CswEnumNbtFilterMode.Begins) { ReturnVal = NonNumericValueColumn + " like " + CasePrepend + ":" + ParameterName + CaseAppend; ParameterCollection.Add(ParameterName, SafeValue + "%"); } else if (CswNbtViewPropertyFilterIn.FilterMode == CswEnumNbtFilterMode.Contains) { ReturnVal = NonNumericValueColumn + " like " + CasePrepend + ":" + ParameterName + CaseAppend; ParameterCollection.Add(ParameterName, "%" + SafeValue + "%"); } else if (CswNbtViewPropertyFilterIn.FilterMode == CswEnumNbtFilterMode.NotContains) { ReturnVal = "(" + NonNumericValueColumn + " not like " + CasePrepend + ":" + ParameterName + CaseAppend + " or " + NonNumericValueColumn + " is null" + ")"; ParameterCollection.Add(ParameterName, "%" + SafeValue + "%"); } else if (CswNbtViewPropertyFilterIn.FilterMode == CswEnumNbtFilterMode.Ends) { ReturnVal = NonNumericValueColumn + " like " + CasePrepend + ":" + ParameterName + CaseAppend; ParameterCollection.Add(ParameterName, "%" + SafeValue); } else if (CswNbtViewPropertyFilterIn.FilterMode == CswEnumNbtFilterMode.Equals) { //covers the case of clobs ReturnVal = NonNumericValueColumn + " like " + CasePrepend + ":" + ParameterName + CaseAppend; ParameterCollection.Add(ParameterName, SafeValue); } else if (CswNbtViewPropertyFilterIn.FilterMode == CswEnumNbtFilterMode.GreaterThan) { ReturnVal = NonNumericValueColumn + " > " + CasePrepend + ":" + ParameterName + CaseAppend; ParameterCollection.Add(ParameterName, SafeValue); } else if (CswNbtViewPropertyFilterIn.FilterMode == CswEnumNbtFilterMode.GreaterThanOrEquals) { ReturnVal = NonNumericValueColumn + " >= " + CasePrepend + ":" + ParameterName + CaseAppend; ParameterCollection.Add(ParameterName, SafeValue); } else if (CswNbtViewPropertyFilterIn.FilterMode == CswEnumNbtFilterMode.LessThan) { ReturnVal = NonNumericValueColumn + " < " + CasePrepend + ":" + ParameterName + CaseAppend; ParameterCollection.Add(ParameterName, SafeValue); } else if (CswNbtViewPropertyFilterIn.FilterMode == CswEnumNbtFilterMode.LessThanOrEquals) { ReturnVal = NonNumericValueColumn + " <= " + CasePrepend + ":" + ParameterName + CaseAppend; ParameterCollection.Add(ParameterName, SafeValue); } else if (CswNbtViewPropertyFilterIn.FilterMode == CswEnumNbtFilterMode.NotEquals) { ReturnVal = "(" + NonNumericValueColumn + " not like " + CasePrepend + ":" + ParameterName + CaseAppend + " or " + NonNumericValueColumn + " is null )"; //case 21623 ParameterCollection.Add(ParameterName, SafeValue); } else if (CswNbtViewPropertyFilterIn.FilterMode == CswEnumNbtFilterMode.In) { //ReturnVal = NonNumericValueColumn + " in( " + CasePrepend + "'" + SafeValue + "'" + CaseAppend + " ) "; // see case 30165 //ReturnVal = NonNumericValueColumn + " in(:" + ParameterName + ") "; //ParameterCollection.Add( ParameterName, CswNbtViewPropertyFilterIn.Value ); // see case 31330 ReturnVal = NonNumericValueColumn + " in(" + CswNbtViewPropertyFilterIn.Value + ") "; } else { throw new CswDniException(CswEnumErrorType.Error, "Invalid filter", "An invalid FilterMode was encountered in CswNbtPropFilterSql.renderViewPropFilter()) { " + CswNbtViewPropertyFilterIn.FilterMode.ToString()); } }//if-else UserNumericHack } else { string NullValueColumn = FilterTableAlias + Column; if (CswNbtViewPropertyFilterIn.FilterMode == CswEnumNbtFilterMode.NotNull) { ReturnVal = NullValueColumn + " is not null"; } else if (CswNbtViewPropertyFilterIn.FilterMode == CswEnumNbtFilterMode.Null) { ReturnVal = NullValueColumn + " is null"; } else { throw new CswDniException(CswEnumErrorType.Error, "Invalid filter", "An invalid FilterMode was encountered in CswNbtPropFilterSql.renderViewPropFilter(): " + CswNbtViewPropertyFilterIn.FilterMode.ToString()); } }//if-else filter mode is not null or not-null return(ReturnVal); } //renderViewPropFilter()
public static void wAddAuthenticationStatus(CswNbtResources CswNbtResources, CswSessionResourcesNbt CswSessionResources, CswWebSvcReturn SvcReturn, CswEnumAuthenticationStatus AuthenticationStatusIn, HttpContext HttpContext) { // ****************************************** // IT IS VERY IMPORTANT for this function not to require the use of database resources, // since it occurs AFTER the call to _deInitResources(), and thus will leak Oracle connections // (see case 26273) // ****************************************** if (null != SvcReturn) { SvcReturn.Authentication = SvcReturn.Authentication ?? new CswWebSvcSessionAuthenticateData.Authentication.Response(); SvcReturn.Authentication.AuthenticationStatus = AuthenticationStatusIn; if (null != CswNbtResources) { if (null != CswNbtResources.CswSessionManager) { SvcReturn.Authentication.TimeOut = CswDateTime.ToClientAsJavascriptString(CswNbtResources.CswSessionManager.TimeoutDate); } if (SvcReturn.Authentication.AuthenticationStatus == CswEnumAuthenticationStatus.ExpiredPassword) { SvcReturn.Authentication.ExpirationReset = new CswWebSvcSessionAuthenticateData.Authentication.Response.Expired(); ICswNbtUser CurrentUser = CswNbtResources.CurrentNbtUser; SvcReturn.Authentication.ExpirationReset.UserId = CurrentUser.UserId.ToString(); CswNbtNodeKey FakeKey = new CswNbtNodeKey() { NodeId = CurrentUser.UserId, NodeSpecies = CswEnumNbtNodeSpecies.Plain, NodeTypeId = CurrentUser.UserNodeTypeId, ObjectClassId = CurrentUser.UserObjectClassId }; SvcReturn.Authentication.ExpirationReset.UserKey = FakeKey.ToString(); CswPropIdAttr PasswordPropIdAttr = new CswPropIdAttr(CurrentUser.UserId, CurrentUser.PasswordPropertyId); SvcReturn.Authentication.ExpirationReset.PasswordId = PasswordPropIdAttr.ToString(); } SvcReturn.Performance = SvcReturn.Performance ?? new CswWebSvcReturnBase.Performance(); SvcReturn.Performance.ServerInit = Math.Round(CswNbtResources.ServerInitTime, 3); SvcReturn.Performance.DbDeinit = Math.Round(CswNbtResources.CswLogger.DbInitTime, 3); SvcReturn.Performance.DbQuery = Math.Round(CswNbtResources.CswLogger.DbQueryTime, 3); SvcReturn.Performance.DbCommit = Math.Round(CswNbtResources.CswLogger.DbCommitTime, 3); SvcReturn.Performance.DbDeinit = Math.Round(CswNbtResources.CswLogger.DbDeInitTime, 3); SvcReturn.Performance.TreeLoaderSql = Math.Round(CswNbtResources.CswLogger.TreeLoaderSQLTime, 3); SvcReturn.Performance.ServerTotal = Math.Round(CswNbtResources.TotalServerTime, 3); SvcReturn.Logging = SvcReturn.Logging ?? new CswWebSvcReturnBase.Logging(); SvcReturn.Logging.CustomerId = CswNbtResources.AccessId; SvcReturn.Logging.Server = Environment.MachineName; CswEnumLogLevels LogLevel = CswNbtResources.ConfigVbls.getConfigVariableValue(CswEnumConfigurationVariableNames.Logging_Level); if (LogLevel == CswNbtResources.UnknownEnum) { LogLevel = CswEnumLogLevels.Error; } SvcReturn.Logging.LogLevel = LogLevel; // Return any messages acquired along the way if (null != CswNbtResources.Messages && CswNbtResources.Messages.Count > 0) { SvcReturn.Status.Messages = CswNbtResources.Messages; } } } HttpCookie AuthStatusCookie = HttpContext.Request.Cookies["CswAuthStatus"]; if (null == AuthStatusCookie) { AuthStatusCookie = new HttpCookie("CswAuthStatus") { HttpOnly = true }; } if (AuthStatusCookie.Value != AuthenticationStatusIn.ToString()) { AuthStatusCookie.Value = AuthenticationStatusIn; HttpContext.Response.Cookies.Add(AuthStatusCookie); } } // wAddAuthenticationStatus()
public static string renderViewPropFilter(ICswNbtUser RunAsUser, CswNbtFieldResources CswNbtFieldResources, CswNbtViewPropertyFilter CswNbtViewPropertyFilterIn, CswEnumNbtPropColumn Column) { string ValueColumn = "jnp." + Column.ToString(); string ReturnVal = string.Empty; bool IncludesTime = false; DateTime FilterValue = DateTime.MinValue; string Value = CswNbtViewPropertyFilterIn.Value.ToLower().Trim(); if (Value.StartsWith("today")) { Int32 PlusDays = 0; if (Value.Length > "today".Length) { string Operator = Value.Substring("today".Length, 1); string Operand = Value.Substring("today".Length + 1); if (CswTools.IsInteger(Operand)) { PlusDays = CswConvert.ToInt32(Operand); if (Operator == "-") { PlusDays = PlusDays * -1; } } } FilterValue = DateTime.Now.AddDays(PlusDays).Date; } else { FilterValue = CswConvert.ToDateTime(CswNbtViewPropertyFilterIn.Value); if (FilterValue.TimeOfDay != TimeSpan.Zero) // midnight { IncludesTime = true; } } if (CswNbtViewPropertyFilterIn.FilterMode == CswEnumNbtFilterMode.NotNull) { ReturnVal = ValueColumn + " is not null"; } else if (CswNbtViewPropertyFilterIn.FilterMode == CswEnumNbtFilterMode.Null) { ReturnVal = ValueColumn + " is null"; } else if (FilterValue != DateTime.MinValue) { // case 26844 // If no time was specified in our filter value, then // we need to ignore the time part of values in our comparisons string ThisDayString = CswNbtFieldResources.CswNbtResources.getDbNativeDate(FilterValue); string NextDayString = CswNbtFieldResources.CswNbtResources.getDbNativeDate(FilterValue.AddDays(1)); if (CswNbtViewPropertyFilterIn.FilterMode == CswEnumNbtFilterMode.Equals) { if (IncludesTime) { ReturnVal = ValueColumn + " = " + ThisDayString; } else { ReturnVal = ValueColumn + " >= " + ThisDayString; ReturnVal += " and " + ValueColumn + " < " + NextDayString; } } else if (CswNbtViewPropertyFilterIn.FilterMode == CswEnumNbtFilterMode.GreaterThan) { if (IncludesTime) { ReturnVal = ValueColumn + " > " + ThisDayString; } else { ReturnVal = ValueColumn + " >= " + NextDayString; } } else if (CswNbtViewPropertyFilterIn.FilterMode == CswEnumNbtFilterMode.GreaterThanOrEquals) { ReturnVal = ValueColumn + " >= " + ThisDayString; } else if (CswNbtViewPropertyFilterIn.FilterMode == CswEnumNbtFilterMode.LessThan) { ReturnVal = ValueColumn + " < " + ThisDayString; } else if (CswNbtViewPropertyFilterIn.FilterMode == CswEnumNbtFilterMode.LessThanOrEquals) { if (IncludesTime) { ReturnVal = ValueColumn + " <= " + ThisDayString; } else { ReturnVal = ValueColumn + " < " + NextDayString; // not <=, see case 28620 } } else if (CswNbtViewPropertyFilterIn.FilterMode == CswEnumNbtFilterMode.NotEquals) { if (IncludesTime) { ReturnVal = ValueColumn + " <> " + ThisDayString; } else { ReturnVal = "(" + ValueColumn + " < " + ThisDayString; ReturnVal += " or " + ValueColumn + " >= " + NextDayString + ")"; } } else { throw new CswDniException(CswEnumErrorType.Error, "Invalid filter", "An invalid FilterMode was encountered in CswNbtNodeProp.GetFilter()) { " + CswNbtViewPropertyFilterIn.FilterMode.ToString()); } // switch( CswNbtViewPropertyFilterIn.FilterMode ) } // if( FilterValue != DateTime.MinValue ) return(ReturnVal); }//renderViewPropFilter()
public string renderViewPropFilter(ICswNbtUser RunAsUser, CswNbtViewPropertyFilter CswNbtViewPropertyFilterIn, Dictionary <string, string> ParameterCollection, int FilterNumber) { return(_CswNbtFieldTypeRuleDefault.renderViewPropFilter(RunAsUser, CswNbtViewPropertyFilterIn, ParameterCollection, FilterNumber)); }//makeWhereClause()
public static ViewSelect.Response getViewSelect(CswNbtResources CswNbtResources, ViewSelect.Request Request) { ViewSelect.Response ret = new ViewSelect.Response(); // Favorites and Recent ICswNbtUser User = CswNbtResources.CurrentNbtUser; if (User != null) { CswNbtObjClassUser UserOc = CswNbtResources.Nodes[User.UserId]; // Recent if (Request.IncludeRecent) { ViewSelect.Response.Category RecentCategory = _getCategory(ref ret, "Recent"); CswNbtResources.SessionDataMgr.getQuickLaunchJson(ref RecentCategory); } ViewSelect.Response.Category FavoritesCategory = _getCategory(ref ret, "Favorites"); //Add the user's stored views to Favorites foreach (CswNbtView View in UserOc.FavoriteViews.SelectedViews.Values.Where(View => View.IsFullyEnabled())) { ViewSelect.Response.Item ViewItem = _addViewSelectObj(FavoritesCategory, View.ViewName, CswEnumNbtViewItemType.View, View.IconFileName, View.ViewId.ToString()); ViewItem.mode = View.ViewMode.ToString(); } if (Request.IncludeActions) { //Add the user's stored actions to Favorites DataTable ActionsTable = UserOc.FavoriteActions.GetDataAsTable(ActionName, ActionPk); foreach (CswNbtAction Action in (from DataRow ActionRow in ActionsTable.Rows where CswConvert.ToBoolean(ActionRow[ActionSelected]) select CswNbtAction.ActionNameStringToEnum(CswConvert.ToString(ActionRow[ActionPk])) into NbtActionName select CswNbtResources.Actions[NbtActionName] into ThisAction where null != ThisAction select ThisAction)) { if (Action.ShowInList) //case 26555 - filter out actions like 'Multi Edit' or 'Edit View' { ViewSelect.Response.Item ActionItem = _addViewSelectObj(FavoritesCategory, Action.DisplayName, CswEnumNbtViewItemType.Action, CswNbtMetaDataObjectClass.IconPrefix16 + Action.IconFileName, Action.ActionId.ToString()); ActionItem.url = Action.Url; } } // foreach } // if( Request.IncludeActions ) } // if( User != null ) // Views Dictionary <CswNbtViewId, CswNbtView> Views = CswNbtResources.ViewSelect.getVisibleViews("lower(NVL(v.category, v.viewname)), lower(v.viewname)", CswNbtResources.CurrentNbtUser, false, false, Request.IsSearchable, CswEnumNbtViewRenderingMode.Any); foreach (CswNbtView View in Views.Values) { ViewSelect.Response.Item ViewItem = _addViewSelectObj(ref ret, View.Category, View.ViewName, CswEnumNbtViewItemType.View, View.IconFileName, View.ViewId.ToString()); ViewItem.mode = View.ViewMode.ToString(); } if (false == Request.IsSearchable) { // Actions if (Request.IncludeActions) { foreach (CswNbtAction Action in CswNbtResources.Actions) { if (Action.ShowInList && //Case 23687: "View By Location" Action is toast. Bye-bye "loc_use_images" config var check. CswNbtResources.Permit.can(Action.Name)) { ViewSelect.Response.Item ActionItem = _addViewSelectObj(ref ret, Action.Category, Action.DisplayName, CswEnumNbtViewItemType.Action, CswNbtMetaDataObjectClass.IconPrefix16 + Action.IconFileName, Action.ActionId.ToString()); ActionItem.url = Action.Url; } } } // Reports if (Request.IncludeReports) { CswNbtMetaDataObjectClass ReportMetaDataObjectClass = CswNbtResources.MetaData.getObjectClass(CswEnumNbtObjectClass.ReportClass); CswNbtView ReportView = ReportMetaDataObjectClass.CreateDefaultView(); ReportView.ViewName = "CswViewTree.DataBinding.ReportView"; ICswNbtTree ReportTree = CswNbtResources.Trees.getTreeFromView(CswNbtResources.CurrentNbtUser, ReportView, true, false, false); for (int i = 0; i < ReportTree.getChildNodeCount(); i++) { ReportTree.goToNthChild(i); CswNbtObjClassReport ReportNode = ReportTree.getNodeForCurrentPosition(); _addViewSelectObj(ref ret, ReportNode.Category.Text, ReportNode.ReportName.Text, CswEnumNbtViewItemType.Report, CswNbtMetaDataObjectClass.IconPrefix16 + "doc.png", ReportNode.NodeId.ToString()); ReportTree.goToParentNode(); } } // Searches if (Request.IncludeSearches) { Collection <CswNbtSearch> Searches = CswNbtResources.SearchManager.getSearches(); foreach (CswNbtSearch Search in Searches) { _addViewSelectObj(ref ret, Search.Category, Search.Name, CswEnumNbtViewItemType.Search, CswNbtMetaDataObjectClass.IconPrefix16 + "magglass.png", Search.SearchId.ToString()); } } } // if( false == Request.IsSearchable ) return(ret); } // getViewSelect()