//takes the request view, adds items, and filters by submitted public CswNbtView getSubmittedRequestItemsView() { CswNbtView Ret = getRequestViewBase(LimitToUnsubmitted: false, AddRootRel: false, IncludeDefaultFilters: false); Ret.Visibility = CswEnumNbtViewVisibility.Hidden; Ret.ViewName = SubmittedItemsViewName; Ret.GridGroupByCol = CswNbtObjClassRequestItem.PropertyName.Request; CswNbtMetaDataObjectClassProp RequestOcp = _RequestItemOC.getObjectClassProp(CswNbtObjClassRequestItem.PropertyName.Request); CswNbtViewRelationship RequestItemRel = Ret.AddViewRelationship(_RequestItemOC, IncludeDefaultFilters: true); CswNbtViewProperty NameVP = Ret.AddViewProperty(RequestItemRel, _RequestItemOC.getObjectClassProp(CswNbtObjClassRequestItem.PropertyName.Name), 1); //NameVP.ShowInGrid = true; CswNbtViewPropertyFilter NameVpf = Ret.AddViewPropertyFilter(NameVP, ShowAtRuntime: true); CswNbtViewProperty ItemNumberVP = Ret.AddViewProperty(RequestItemRel, _RequestItemOC.getObjectClassProp(CswNbtObjClassRequestItem.PropertyName.ItemNumber), 2); ItemNumberVP.Width = 10; CswNbtViewProperty StatusVP = Ret.AddViewProperty(RequestItemRel, _RequestItemOC.getObjectClassProp(CswNbtObjClassRequestItem.PropertyName.Status), 3); CswNbtViewPropertyFilter StatusVpf = Ret.AddViewPropertyFilter(StatusVP, FilterMode: CswEnumNbtFilterMode.NotEquals, Value: CswNbtObjClassRequestItem.Statuses.Pending); StatusVpf.ShowAtRuntime = true; CswNbtViewProperty DescriptionVP = Ret.AddViewProperty(RequestItemRel, _RequestItemOC.getObjectClassProp(CswNbtObjClassRequestItem.PropertyName.Description), 4); DescriptionVP.Width = 50; CswNbtViewProperty NeededByVP = Ret.AddViewProperty(RequestItemRel, _RequestItemOC.getObjectClassProp(CswNbtObjClassRequestItem.PropertyName.NeededBy), 5); CswNbtViewProperty RequestVP = Ret.AddViewProperty(RequestItemRel, _RequestItemOC.getObjectClassProp(CswNbtObjClassRequestItem.PropertyName.Request)); CswNbtViewProperty CommentsVP = Ret.AddViewProperty(RequestItemRel, _RequestItemOC.getObjectClassProp(CswNbtObjClassRequestItem.PropertyName.Comments)); CswNbtViewProperty RequestTypeVP = Ret.AddViewProperty(RequestItemRel, _RequestItemOC.getObjectClassProp(CswNbtObjClassRequestItem.PropertyName.RequestType), 7); RequestTypeVP.Width = 20; return(Ret); }
public IEnumerable <CswPrimaryKey> getContainersInGroup() { CswNbtView ContainersInGroupView = new CswNbtView(_CswNbtResources); ContainersInGroupView.ViewName = "ContainersInGroup"; CswNbtMetaDataObjectClass ContainerOC = _CswNbtResources.MetaData.getObjectClass(CswEnumNbtObjectClass.ContainerClass); CswNbtViewRelationship Rel1 = ContainersInGroupView.AddViewRelationship(ContainerOC, true); CswNbtMetaDataObjectClassProp ContainerGroupOCP = ContainerOC.getObjectClassProp(CswNbtObjClassContainer.PropertyName.ContainerGroup); CswNbtViewProperty Prop2 = ContainersInGroupView.AddViewProperty(Rel1, ContainerGroupOCP); CswNbtViewPropertyFilter Filt3 = ContainersInGroupView.AddViewPropertyFilter(Prop2, CswEnumNbtFilterConjunction.And, CswEnumNbtFilterResultMode.Hide, CswNbtFieldTypeRuleRelationship.SubFieldName.NodeID, CswEnumNbtFilterMode.Equals, this.NodeId.PrimaryKey.ToString(), false, false); Collection <CswPrimaryKey> _ContainerGroupNodePks = new Collection <CswPrimaryKey>(); ICswNbtTree ContainersInGroupTree = _CswNbtResources.Trees.getTreeFromView(ContainersInGroupView, false, true, true); ContainersInGroupTree.goToRoot(); for (int i = 0; i < ContainersInGroupTree.getChildNodeCount(); i++) { ContainersInGroupTree.goToNthChild(i); _ContainerGroupNodePks.Add(ContainersInGroupTree.getNodeIdForCurrentPosition()); ContainersInGroupTree.goToParentNode(); } return(_ContainerGroupNodePks); }
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()
}//afterPopulateProps() public override CswNbtNode CopyNode(bool IsNodeTemp = false, Action <CswNbtNode> OnCopy = null) { // Copy this Assembly CswNbtNode CopiedAssemblyNode = base.CopyNodeImpl(IsNodeTemp, OnCopy); // Copy all Equipment CswNbtMetaDataObjectClass EquipmentObjectClass = _CswNbtResources.MetaData.getObjectClass(CswEnumNbtObjectClass.EquipmentClass); CswNbtView EquipmentView = new CswNbtView(_CswNbtResources); CswNbtViewRelationship EquipmentRelationship = EquipmentView.AddViewRelationship(EquipmentObjectClass, false); CswNbtViewProperty AssemblyProperty = EquipmentView.AddViewProperty(EquipmentRelationship, EquipmentObjectClass.getObjectClassProp(CswNbtObjClassEquipment.PropertyName.Assembly)); CswNbtViewPropertyFilter AssemblyIsOriginalFilter = EquipmentView.AddViewPropertyFilter( AssemblyProperty, CswNbtFieldTypeRuleRelationship.SubFieldName.NodeID, CswEnumNbtFilterMode.Equals, NodeId.PrimaryKey.ToString()); ICswNbtTree EquipmentTree = _CswNbtResources.Trees.getTreeFromView(_CswNbtResources.CurrentNbtUser, EquipmentView, true, false, false); EquipmentTree.goToRoot(); Int32 c = 0; while (c < EquipmentTree.getChildNodeCount()) { EquipmentTree.goToNthChild(c); CswNbtObjClassEquipment OriginalEquipmentNode = EquipmentTree.getNodeForCurrentPosition(); OriginalEquipmentNode.CopyNode(IsNodeTemp, delegate(CswNbtNode CopiedEquipmentNode) { ((CswNbtObjClassEquipment)CopiedEquipmentNode).Assembly.RelatedNodeId = CopiedAssemblyNode.NodeId; }); EquipmentTree.goToParentNode(); c++; } return(CopiedAssemblyNode); }
} // InitActionPermissionOptions() private void _deleteRelatedPermissionNodes() { CswNbtView PermissionsView = new CswNbtView( _CswNbtResources ); CswNbtMetaDataPropertySet PermissionPS = _CswNbtResources.MetaData.getPropertySet( CswEnumNbtPropertySetName.PermissionSet ); CswNbtViewRelationship RootVR = PermissionsView.AddViewRelationship( PermissionPS, false ); CswNbtViewPropertyFilter Filter = null; foreach( CswNbtMetaDataObjectClass PermOC in PermissionPS.getObjectClasses() ) { if( Filter == null ) { CswNbtMetaDataNodeType PermNT = PermOC.FirstNodeType; if( null != PermNT ) { CswNbtMetaDataNodeTypeProp RoleOCP = PermNT.getNodeTypePropByObjectClassProp( CswNbtPropertySetPermission.PropertyName.Role ); Filter = PermissionsView.AddViewPropertyAndFilter( RootVR, MetaDataProp: RoleOCP, Value: NodeId.PrimaryKey.ToString(), SubFieldName: CswEnumNbtSubFieldName.NodeID, FilterMode: CswEnumNbtFilterMode.Equals ); } } else { break; } } ICswNbtTree PermissionsTree = _CswNbtResources.Trees.getTreeFromView( PermissionsView, false, true, true ); for( int i = 0; i < PermissionsTree.getChildNodeCount(); i++ ) { PermissionsTree.goToNthChild( i ); CswNbtNode PermissionNode = PermissionsTree.getNodeForCurrentPosition(); PermissionNode.delete(); PermissionsTree.goToRoot(); } }
private CswPrimaryKey _HandleReference(string LocationNodeIdStr, string LocationBarcode) //, Dictionary<Int32, Int32> NodeMap ) { CswPrimaryKey LocationNodeId = new CswPrimaryKey(); if (!string.IsNullOrEmpty(LocationNodeIdStr)) { LocationNodeId.FromString(LocationNodeIdStr); if (LocationNodeId.PrimaryKey == Int32.MinValue && LocationBarcode != string.Empty) { // Find the location with this barcode value CswNbtMetaDataObjectClass LocationObjectClass = _CswNbtResources.MetaData.getObjectClass(CswEnumNbtObjectClass.LocationClass); CswNbtMetaDataObjectClassProp BarcodeObjectClassProp = LocationObjectClass.getObjectClassProp(CswNbtObjClassLocation.PropertyName.Barcode); CswNbtView LocationView = new CswNbtView(_CswNbtResources); // All locations.. CswNbtViewRelationship LocationRelationship = LocationView.AddViewRelationship(LocationObjectClass, false); // ..with barcodes CswNbtViewProperty BarcodeViewProperty = LocationView.AddViewProperty(LocationRelationship, BarcodeObjectClassProp); // ..equal to the given barcode CswNbtViewPropertyFilter BarcodeViewPropertyFilter = LocationView.AddViewPropertyFilter(BarcodeViewProperty, CswNbtFieldTypeRuleBarCode.SubFieldName.Barcode, CswEnumNbtFilterMode.Equals, LocationBarcode, false); ICswNbtTree LocationTree = _CswNbtResources.Trees.getTreeFromView(_CswNbtResources.CurrentNbtUser, LocationView, true, false, false); if (LocationTree.getChildNodeCount() > 0) { LocationTree.goToNthChild(0); CswNbtNode LocationNode = LocationTree.getNodeForCurrentPosition(); LocationNodeId = LocationNode.NodeId; } } } // if(!string.IsNullOrEmpty(LocationNodeIdStr)) return(LocationNodeId); } // _HandleReference()
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()
/// <summary> /// Creates a CswNbtViewPropertyFilter and returns its Json /// </summary> public JObject makeViewPropFilter(CswNbtView View, JObject FilterProp, bool ClearFilters = false) { JObject Ret = new JObject(); string FiltArbitraryId = CswConvert.ToString(FilterProp["filtarbitraryid"]); string PropArbitraryId = CswConvert.ToString(FilterProp["proparbitraryid"]); if (FiltArbitraryId == "undefined") { FiltArbitraryId = string.Empty; } if (PropArbitraryId == "undefined") { PropArbitraryId = string.Empty; } CswNbtViewPropertyFilter ViewPropFilt = null; if (false == string.IsNullOrEmpty(PropArbitraryId)) { CswNbtViewProperty ViewProp = (CswNbtViewProperty)View.FindViewNodeByArbitraryId(PropArbitraryId); if (false == string.IsNullOrEmpty(FiltArbitraryId)) { ViewPropFilt = (CswNbtViewPropertyFilter)View.FindViewNodeByArbitraryId(FiltArbitraryId); } else { ViewPropFilt = View.AddViewPropertyFilter(ViewProp, CswEnumNbtSubFieldName.Unknown, CswEnumNbtFilterMode.Unknown, string.Empty, false); } //Case 23779, 23937, 24064 if (ClearFilters && null != ViewPropFilt) { ViewProp.Filters.Clear(); ViewProp.Filters.Add(ViewPropFilt); } } if (ViewPropFilt != null) { CswEnumNbtFilterConjunction Conjunction = (CswEnumNbtFilterConjunction)CswConvert.ToString(FilterProp["conjunction"]); CswEnumNbtSubFieldName FieldName = (CswEnumNbtSubFieldName)CswConvert.ToString(FilterProp["subfieldname"]); CswEnumNbtFilterMode FilterMode = (CswEnumNbtFilterMode)CswConvert.ToString(FilterProp["filter"]); string FilterValue = CswConvert.ToString(FilterProp["filtervalue"]); if (FieldName != CswEnumNbtSubFieldName.Unknown && FilterMode != CswEnumNbtFilterMode.Unknown) { ViewPropFilt.FilterMode = FilterMode; ViewPropFilt.Conjunction = Conjunction; ViewPropFilt.SubfieldName = FieldName; ViewPropFilt.Value = FilterValue; _addVbPropFilter(Ret, ViewPropFilt); } } return(Ret); }
} // _getVbProperties() /// <summary> /// Returns the JSON for a Vb prop /// </summary> private void _getVbPropData(JObject ParentObj, CswViewBuilderProp ViewBuilderProp) { if (null != ViewBuilderProp && ViewBuilderProp.FieldTypeRule.SearchAllowed) { CswNbtSubFieldColl SubFields = ViewBuilderProp.FieldTypeRule.SubFields; ParentObj["ownername"] = ViewBuilderProp.OwnerName; ParentObj["propname"] = ViewBuilderProp.MetaDataPropName; ParentObj["viewbuilderpropid"] = ViewBuilderProp.MetaDataPropId.ToString(); ParentObj["relatedidtype"] = ViewBuilderProp.RelatedIdType.ToString(); ParentObj["proptype"] = ViewBuilderProp.Type.ToString(); ParentObj["metadatatypename"] = ViewBuilderProp.MetaDataTypeName; ParentObj["fieldtype"] = ViewBuilderProp.FieldType.ToString(); if (ViewBuilderProp.ViewProp != null) { ParentObj["proparbitraryid"] = ViewBuilderProp.ViewProp.ArbitraryId; } string FiltArbitraryId = string.Empty; if (ViewBuilderProp.Filters.Count > 0) { CswNbtViewPropertyFilter Filt = (CswNbtViewPropertyFilter)ViewBuilderProp.Filters[0]; FiltArbitraryId = Filt.ArbitraryId; } ParentObj["filtarbitraryid"] = FiltArbitraryId; ParentObj["defaultconjunction"] = CswEnumNbtFilterConjunction.And.ToString(); ParentObj["defaultsubfield"] = ViewBuilderProp.FieldTypeRule.SubFields.Default.Name.ToString(); ParentObj["defaultfiltermode"] = ViewBuilderProp.FieldTypeRule.SubFields.Default.DefaultFilterMode.ToString(); ParentObj["helptext"] = ViewBuilderProp.FieldTypeRule.getHelpText(); ParentObj["subfields"] = new JObject(); foreach (CswNbtSubField Field in SubFields) { string OptName = Field.Name.ToString(); ParentObj["subfields"][OptName] = new JObject(); ParentObj["subfields"][OptName]["column"] = Field.Column.ToString(); ParentObj["subfields"][OptName]["name"] = OptName; JObject FiltersObj = new JObject(); ParentObj["subfields"][OptName]["filtermodes"] = FiltersObj; _addSubFieldFilterModes(FiltersObj, Field); } addVbPropFilters(ParentObj, ViewBuilderProp); if (ViewBuilderProp.FieldType == CswEnumNbtFieldType.List) { ParentObj["filtersoptions"] = new JObject(); ParentObj["filtersoptions"]["name"] = ViewBuilderProp.MetaDataPropName; if (ViewBuilderProp.ListOptions.Count() > 0) { ParentObj["filtersoptions"]["selected"] = ViewBuilderProp.ListOptions.First(); ParentObj["filtersoptions"]["options"] = _getListPropFilterOptions(ViewBuilderProp); } } } } // _getVbPropData()
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()
}//afterPopulateProps() public override void addDefaultViewFilters(CswNbtViewRelationship ParentRelationship) { // BZ 10454 // Filter out Retired Equipment by default CswNbtMetaDataObjectClassProp StatusOCP = this.ObjectClass.getObjectClassProp(PropertyName.Status); CswNbtViewProperty StatusViewProp = ParentRelationship.View.AddViewProperty(ParentRelationship, StatusOCP); CswNbtViewPropertyFilter StatusViewPropFilter = ParentRelationship.View.AddViewPropertyFilter(StatusViewProp, StatusOCP.getFieldTypeRule().SubFields.Default.Name, CswEnumNbtFilterMode.NotEquals, "Retired", //StatusOptionToDisplayString( StatusOption.Retired ), false); }
} // _getListPropFilterOptions() private void _addVbPropFilter(JObject ParentObj, CswNbtViewPropertyFilter Filter) { string FiltId = Filter.ArbitraryId; ParentObj[FiltId] = new JObject(); ParentObj[FiltId]["arbitraryid"] = Filter.ArbitraryId; ParentObj[FiltId]["nodename"] = CswEnumNbtViewXmlNodeName.Filter.ToString().ToLower(); ParentObj[FiltId]["subfieldname"] = Filter.SubfieldName.ToString(); ParentObj[FiltId]["value"] = Filter.Value; ParentObj[FiltId]["filtermode"] = Filter.FilterMode.ToString(); ParentObj[FiltId]["casesensitive"] = Filter.CaseSensitive; ParentObj[FiltId]["conjunction"] = Filter.Conjunction.ToString(); }
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 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()
public CswNbtView getTreeViewOfFutureNodes(IEnumerable GeneratorNodes) { CswNbtView ReturnVal = new CswNbtView(_CswNbtResources); ReturnVal.ViewName = "All Future Nodes"; CswNbtMetaDataObjectClass GeneratorObjectClass = _CswNbtResources.MetaData.getObjectClass(CswEnumNbtObjectClass.GeneratorClass); CswNbtViewRelationship GeneratorRelationship = ReturnVal.AddViewRelationship(GeneratorObjectClass, false); ArrayList TargetNodeTypeIds = new ArrayList(); foreach (CswNbtNode CurrentGeneratorNode in GeneratorNodes) { GeneratorRelationship.NodeIdsToFilterIn.Add(CurrentGeneratorNode.NodeId); CswNbtObjClassGenerator Generator = CurrentGeneratorNode; foreach (String nodeTypeId in Generator.TargetType.SelectedNodeTypeIds) { Int32 CurrentTargetNodeTypeId = CswConvert.ToInt32(nodeTypeId); if (!(TargetNodeTypeIds.Contains(CurrentTargetNodeTypeId))) { TargetNodeTypeIds.Add(CurrentTargetNodeTypeId); } } } foreach (Int32 TargetNodeTypeId in TargetNodeTypeIds) { CswNbtMetaDataNodeType TargetNodeType = _CswNbtResources.MetaData.getNodeType(TargetNodeTypeId); if (TargetNodeType != null) { CswNbtMetaDataObjectClass TargetObjectClass = TargetNodeType.getObjectClass(); CswNbtObjClass TargetObjClass = CswNbtObjClassFactory.makeObjClass(_CswNbtResources, TargetObjectClass); if (!(TargetObjClass is CswNbtPropertySetGeneratorTarget)) { throw new CswDniException("CswNbtActGenerateFutureNodes.getTreeViewOfFutureNodes() got an invalid object class: " + TargetObjectClass.ObjectClass); } CswNbtViewRelationship TargetRelationship = ReturnVal.AddViewRelationship(GeneratorRelationship, CswEnumNbtViewPropOwnerType.Second, TargetNodeType.getNodeTypePropByObjectClassProp(CswNbtPropertySetGeneratorTarget.PropertyName.Generator), false); CswNbtViewProperty IsFutureFlagProperty = ReturnVal.AddViewProperty(TargetRelationship, TargetNodeType.getNodeTypePropByObjectClassProp(CswNbtPropertySetGeneratorTarget.PropertyName.IsFuture)); CswNbtViewPropertyFilter IsFutureFilter = ReturnVal.AddViewPropertyFilter(IsFutureFlagProperty, CswNbtFieldTypeRuleLogical.SubFieldName.Checked, CswEnumNbtFilterMode.Equals, CswEnumTristate.True, false); } } return(ReturnVal); }//getTreeViewOfFutureNodes()
} // CalculateMTBF() private Int32 _countProblems(DateTime StartDate, DateTime EndDate) { Int32 ret = 0; if (this.NodeId != null) { // BZ 6779 CswNbtMetaDataObjectClass ProblemOC = _CswNbtResources.MetaData.getObjectClass(CswEnumNbtObjectClass.ProblemClass); CswNbtMetaDataObjectClassProp OwnerOCP = ProblemOC.getObjectClassProp(CswNbtObjClassProblem.PropertyName.Owner); CswNbtMetaDataObjectClassProp FailureOCP = ProblemOC.getObjectClassProp(CswNbtObjClassProblem.PropertyName.Failure); CswNbtMetaDataObjectClassProp DateOpenedOCP = ProblemOC.getObjectClassProp(CswNbtObjClassProblem.PropertyName.DateOpened); CswNbtView ProblemFailuresView = new CswNbtView(_CswNbtResources); ProblemFailuresView.ViewName = "Problem Failures"; CswNbtViewRelationship ParentRelationship = ProblemFailuresView.AddViewRelationship(this.NodeTypeProp.getNodeType(), true); ParentRelationship.NodeIdsToFilterIn.Add(this.NodeId); CswNbtViewRelationship ChildRelationship = ProblemFailuresView.AddViewRelationship(ParentRelationship, CswEnumNbtViewPropOwnerType.Second, OwnerOCP, true); // BZ 10277 - Only Problems flagged Failure CswNbtViewProperty FailureVP = ProblemFailuresView.AddViewProperty(ChildRelationship, FailureOCP); CswNbtViewPropertyFilter FailureFilter = ProblemFailuresView.AddViewPropertyFilter(FailureVP, CswNbtFieldTypeRuleLogical.SubFieldName.Checked, CswEnumNbtFilterMode.Equals, CswEnumTristate.True.ToString(), false); // BZ 10259...within the calculation date scope CswNbtViewProperty DateOpenedVP = ProblemFailuresView.AddViewProperty(ChildRelationship, DateOpenedOCP); CswNbtViewPropertyFilter DateOpenedStartFilter = ProblemFailuresView.AddViewPropertyFilter(DateOpenedVP, CswNbtFieldTypeRuleDateTime.SubFieldName.Value, CswEnumNbtFilterMode.GreaterThanOrEquals, StartDate.ToString(), false); CswNbtViewPropertyFilter DateOpenedEndFilter = ProblemFailuresView.AddViewPropertyFilter(DateOpenedVP, CswNbtFieldTypeRuleDateTime.SubFieldName.Value, CswEnumNbtFilterMode.LessThanOrEquals, EndDate.ToString(), false); ICswNbtTree ProblemNodesTree = _CswNbtResources.Trees.getTreeFromView(_CswNbtResources.CurrentNbtUser, ProblemFailuresView, true, false, false); if (ProblemNodesTree.getChildNodeCount() > 0) { ProblemNodesTree.goToNthChild(0); ret = ProblemNodesTree.getChildNodeCount(); } } return(ret); } // _countProblems()
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); }
public string renderViewPropFilter(ICswNbtUser RunAsUser, CswNbtViewPropertyFilter CswNbtViewPropertyFilterIn) { return(string.Empty); }//makeWhereClause()
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) { return(string.Empty); }//makeWhereClause()
public override void update() { CswNbtMetaDataObjectClass RoleMDObjC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( NbtObjectClass.RoleClass ); CswNbtObjClassRole cispro_receiver_role = _CswNbtSchemaModTrnsctn.Nodes.makeRoleNodeFromRoleName( "CISPro_Receiver" ); CswNbtObjClassRole cispro_dispenser_role = _CswNbtSchemaModTrnsctn.Nodes.makeRoleNodeFromRoleName( "CISPro_Dispenser" ); ; CswNbtObjClassRole cispro_request_fulfiller_role = _CswNbtSchemaModTrnsctn.Nodes.makeRoleNodeFromRoleName( "CISPro_Request_Fulfiller" ); ; CswNbtObjClassRole cispro_admin_role = _CswNbtSchemaModTrnsctn.Nodes.makeRoleNodeFromRoleName( "CISPro_Admin" ); ; CswNbtObjClassUser cispro_dispenser_User = _CswNbtSchemaModTrnsctn.Nodes.makeUserNodeFromUsername( "cispro_dispenser" ); if( null != cispro_receiver_role ) { _CswNbtSchemaModTrnsctn.Permit.set( Actions.CswNbtActionName.DispenseContainer, cispro_receiver_role, false ); _CswNbtSchemaModTrnsctn.Permit.set( Actions.CswNbtActionName.DisposeContainer, cispro_receiver_role, false ); }//if we have have a cispro_receiver_role if( null != cispro_admin_role ) { _CswNbtSchemaModTrnsctn.Permit.set( Actions.CswNbtActionName.Kiosk_Mode, cispro_admin_role, true ); } if( null != cispro_request_fulfiller_role ) { _CswNbtSchemaModTrnsctn.Permit.set( Actions.CswNbtActionName.DispenseContainer, cispro_request_fulfiller_role, true ); _CswNbtSchemaModTrnsctn.Permit.set( Actions.CswNbtActionName.DisposeContainer, cispro_request_fulfiller_role, true ); CswNbtMetaDataNodeType ContainerNodeType = _CswNbtSchemaModTrnsctn.MetaData.getNodeType( "Container" ); if( null != ContainerNodeType ) { _CswNbtSchemaModTrnsctn.Permit.set( new CswNbtPermit.NodeTypePermission[] { CswNbtPermit.NodeTypePermission.Delete, CswNbtPermit.NodeTypePermission.Edit, CswNbtPermit.NodeTypePermission.View }, ContainerNodeType, cispro_request_fulfiller_role, true ); } if( ( null != cispro_dispenser_User ) ) { cispro_dispenser_User.Node.Properties[CswNbtObjClassUser.PropertyName.Role].AsRelationship.RelatedNodeId = cispro_request_fulfiller_role.NodeId; cispro_dispenser_User.postChanges( true ); }//if we have the dispenser user and the container nt }//if we have the request-fulfiller role if( null != cispro_dispenser_role ) { cispro_dispenser_role.Node.delete(); } _CswNbtSchemaModTrnsctn.deleteView( "Dispense Requests: Open", true ); /* * Pending Requests View: * Includes all four request node types * Includes Needed By, Description, and Requested For (in that order) * Sorted by Needed By, Description * Description Width = 90 * Filtered on Status = Pending * Filtered by */ CswNbtView PendingRequestsView = _CswNbtSchemaModTrnsctn.makeSafeView( "Pending Requests", NbtViewVisibility.Global ); PendingRequestsView.ViewMode = NbtViewRenderingMode.Grid; PendingRequestsView.Category = "Requests"; PendingRequestsView.Width = 100; //do this for all CswNbtMetaDataNodeType Rel1SecondNT = _CswNbtSchemaModTrnsctn.MetaData.getNodeType( "Request Container Dispense" ); if( null != Rel1SecondNT ) { CswNbtViewRelationship Rel1 = PendingRequestsView.AddViewRelationship( Rel1SecondNT, true ); //do this for all CswNbtMetaDataNodeTypeProp Prop2NTP = Rel1SecondNT.getNodeTypePropByObjectClassProp( CswNbtObjClassRequestContainerDispense.PropertyName.Status ); CswNbtViewProperty Prop2 = PendingRequestsView.AddViewProperty( Rel1, Prop2NTP ); Prop2.ShowInGrid = false; CswNbtViewPropertyFilter Filt3 = PendingRequestsView.AddViewPropertyFilter( Prop2, CswNbtPropFilterSql.PropertyFilterConjunction.And, CswNbtPropFilterSql.FilterResultMode.Hide, CswNbtSubField.SubFieldName.Value, CswNbtPropFilterSql.PropertyFilterMode.Equals, "Pending", false, false ); CswNbtMetaDataNodeTypeProp Prop4NTP = Rel1SecondNT.getNodeTypePropByObjectClassProp( CswNbtObjClassRequestContainerDispense.PropertyName.Description ); CswNbtViewProperty Prop4 = PendingRequestsView.AddViewProperty( Rel1, Prop4NTP ); Prop4.SortBy = true; Prop4.SortMethod = NbtViewPropertySortMethod.Ascending; Prop4.Order = 2; Prop4.Width = 90; CswNbtMetaDataNodeTypeProp Prop5NTP = Rel1SecondNT.getNodeTypePropByObjectClassProp( CswNbtObjClassRequestContainerDispense.PropertyName.RequestedFor ); CswNbtViewProperty Prop5 = PendingRequestsView.AddViewProperty( Rel1, Prop5NTP ); Prop5.Order = 3; CswNbtMetaDataNodeTypeProp Prop6NTP = Rel1SecondNT.getNodeTypePropByObjectClassProp( CswNbtObjClassRequestContainerDispense.PropertyName.NeededBy ); CswNbtViewProperty Prop6 = PendingRequestsView.AddViewProperty( Rel1, Prop6NTP ); Prop6.SortBy = true; Prop6.SortMethod = NbtViewPropertySortMethod.Ascending; Prop6.Order = 1; }//if we have the request dispense nt CswNbtMetaDataNodeType Rel7SecondNT = _CswNbtSchemaModTrnsctn.MetaData.getNodeType( "Request Material Create" ); if( null != Rel7SecondNT ) { CswNbtViewRelationship Rel7 = PendingRequestsView.AddViewRelationship( Rel7SecondNT, true ); CswNbtMetaDataNodeTypeProp Prop8NTP = Rel7SecondNT.getNodeTypePropByObjectClassProp( CswNbtObjClassRequestMaterialCreate.PropertyName.Status ); CswNbtViewProperty Prop8 = PendingRequestsView.AddViewProperty( Rel7, Prop8NTP ); Prop8.ShowInGrid = false; CswNbtViewPropertyFilter Filt9 = PendingRequestsView.AddViewPropertyFilter( Prop8, CswNbtPropFilterSql.PropertyFilterConjunction.And, CswNbtPropFilterSql.FilterResultMode.Hide, CswNbtSubField.SubFieldName.Value, CswNbtPropFilterSql.PropertyFilterMode.Equals, "Pending", false, false ); CswNbtMetaDataNodeTypeProp Prop10NTP = Rel7SecondNT.getNodeTypePropByObjectClassProp( CswNbtObjClassRequestMaterialCreate.PropertyName.Description ); CswNbtViewProperty Prop10 = PendingRequestsView.AddViewProperty( Rel7, Prop10NTP ); Prop10.SortBy = true; Prop10.SortMethod = NbtViewPropertySortMethod.Ascending; Prop10.Order = 2; Prop10.Width = 90; CswNbtMetaDataNodeTypeProp Prop11NTP = Rel7SecondNT.getNodeTypePropByObjectClassProp( CswNbtObjClassRequestMaterialCreate.PropertyName.RequestedFor ); CswNbtViewProperty Prop11 = PendingRequestsView.AddViewProperty( Rel7, Prop11NTP ); Prop11.Order = 3; CswNbtMetaDataNodeTypeProp Prop12NTP = Rel7SecondNT.getNodeTypePropByObjectClassProp( CswNbtObjClassRequestMaterialCreate.PropertyName.NeededBy ); CswNbtViewProperty Prop12 = PendingRequestsView.AddViewProperty( Rel7, Prop12NTP ); Prop12.SortBy = true; Prop12.SortMethod = NbtViewPropertySortMethod.Ascending; Prop12.Order = 1; }//if we have "Request Material Create" CswNbtMetaDataNodeType Rel13SecondNT = _CswNbtSchemaModTrnsctn.MetaData.getNodeType( "Request Container Update" ); if( null != Rel13SecondNT ) { CswNbtViewRelationship Rel13 = PendingRequestsView.AddViewRelationship( Rel13SecondNT, true ); CswNbtMetaDataNodeTypeProp Prop14NTP = Rel13SecondNT.getNodeTypePropByObjectClassProp( CswNbtObjClassRequestContainerUpdate.PropertyName.Status ); CswNbtViewProperty Prop14 = PendingRequestsView.AddViewProperty( Rel13, Prop14NTP ); Prop14.ShowInGrid = false; CswNbtViewPropertyFilter Filt15 = PendingRequestsView.AddViewPropertyFilter( Prop14, CswNbtPropFilterSql.PropertyFilterConjunction.And, CswNbtPropFilterSql.FilterResultMode.Hide, CswNbtSubField.SubFieldName.Value, CswNbtPropFilterSql.PropertyFilterMode.Equals, "Pending", false, false ); CswNbtMetaDataNodeTypeProp Prop16NTP = Rel13SecondNT.getNodeTypePropByObjectClassProp( CswNbtObjClassRequestContainerUpdate.PropertyName.Description ); CswNbtViewProperty Prop16 = PendingRequestsView.AddViewProperty( Rel13, Prop16NTP ); Prop16.SortBy = true; Prop16.SortMethod = NbtViewPropertySortMethod.Ascending; Prop16.Order = 2; Prop16.Width = 90; CswNbtMetaDataNodeTypeProp Prop17NTP = Rel13SecondNT.getNodeTypePropByObjectClassProp( CswNbtObjClassRequestContainerUpdate.PropertyName.RequestedFor ); CswNbtViewProperty Prop17 = PendingRequestsView.AddViewProperty( Rel13, Prop17NTP ); Prop17.Order = 3; CswNbtMetaDataNodeTypeProp Prop18NTP = Rel13SecondNT.getNodeTypePropByObjectClassProp( CswNbtObjClassRequestContainerUpdate.PropertyName.NeededBy ); CswNbtViewProperty Prop18 = PendingRequestsView.AddViewProperty( Rel13, Prop18NTP ); Prop18.SortBy = true; Prop18.SortMethod = NbtViewPropertySortMethod.Ascending; Prop18.Order = 1; }//if we have "Request Container Update" nt CswNbtMetaDataNodeType Rel19SecondNT = _CswNbtSchemaModTrnsctn.MetaData.getNodeType( "Request Material Dispense" ); if( null != Rel19SecondNT ) { CswNbtViewRelationship Rel19 = PendingRequestsView.AddViewRelationship( Rel19SecondNT, true ); CswNbtMetaDataNodeTypeProp Prop20NTP = Rel19SecondNT.getNodeTypePropByObjectClassProp( CswNbtObjClassRequestMaterialDispense.PropertyName.Status ); CswNbtViewProperty Prop20 = PendingRequestsView.AddViewProperty( Rel19, Prop20NTP ); Prop20.ShowInGrid = false; CswNbtViewPropertyFilter Filt21 = PendingRequestsView.AddViewPropertyFilter( Prop20, CswNbtPropFilterSql.PropertyFilterConjunction.And, CswNbtPropFilterSql.FilterResultMode.Hide, CswNbtSubField.SubFieldName.Value, CswNbtPropFilterSql.PropertyFilterMode.Equals, "Pending", false, false ); CswNbtMetaDataNodeTypeProp Prop22NTP = Rel19SecondNT.getNodeTypePropByObjectClassProp( CswNbtObjClassRequestMaterialDispense.PropertyName.Description ); CswNbtViewProperty Prop22 = PendingRequestsView.AddViewProperty( Rel19, Prop22NTP ); Prop22.SortBy = true; Prop22.SortMethod = NbtViewPropertySortMethod.Ascending; Prop22.Order = 2; Prop22.Width = 90; CswNbtMetaDataNodeTypeProp Prop23NTP = Rel19SecondNT.getNodeTypePropByObjectClassProp( CswNbtObjClassRequestMaterialDispense.PropertyName.RequestedFor ); CswNbtViewProperty Prop23 = PendingRequestsView.AddViewProperty( Rel19, Prop23NTP ); Prop23.Order = 3; CswNbtMetaDataNodeTypeProp Prop24NTP = Rel19SecondNT.getNodeTypePropByObjectClassProp( CswNbtObjClassRequestMaterialDispense.PropertyName.NeededBy ); CswNbtViewProperty Prop24 = PendingRequestsView.AddViewProperty( Rel19, Prop24NTP ); Prop24.SortBy = true; Prop24.SortMethod = NbtViewPropertySortMethod.Ascending; Prop24.Order = 1; }//if we have "Request Material Dispense" nt PendingRequestsView.save(); if( null != cispro_request_fulfiller_role ) { LandingPage.LandingPageData.Request RequestFulfillerLandingPageRequest = new LandingPage.LandingPageData.Request { Type = CswNbtLandingPageItemType.Link, ViewType = "View", PkValue = PendingRequestsView.ViewId.ToString(), NodeTypeId = string.Empty, Text = PendingRequestsView.ViewName, RoleId = cispro_request_fulfiller_role.NodeId.ToString(), ActionId = string.Empty, NewRow = 1, NewColumn = 2 }; _CswNbtSchemaModTrnsctn.getLandingPageTable().addLandingPageItem( RequestFulfillerLandingPageRequest ); }//if we have fulfiller role } //Update()
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 override void update() { CswNbtMetaDataObjectClass feedbackOC = _CswNbtSchemaModTrnsctn.createObjectClass( CswNbtMetaDataObjectClass.NbtObjectClass.FeedbackClass, "docs.gif", false, false ); CswNbtMetaDataObjectClassProp caseNumberOCP = _CswNbtSchemaModTrnsctn.createObjectClassProp( feedbackOC, new CswNbtWcfMetaDataModel.ObjectClassProp() { PropName = CswNbtObjClassFeedback.CaseNumberPropertyName, FieldType = CswNbtMetaDataFieldType.NbtFieldType.Sequence } ); Int32 userOCID = _CswNbtSchemaModTrnsctn.MetaData.getObjectClassId( CswNbtMetaDataObjectClass.NbtObjectClass.UserClass ); CswNbtMetaDataObjectClassProp authorOCP = _CswNbtSchemaModTrnsctn.createObjectClassProp( feedbackOC, new CswNbtWcfMetaDataModel.ObjectClassProp() { PropName = CswNbtObjClassFeedback.AuthorPropertyName, FieldType = CswNbtMetaDataFieldType.NbtFieldType.Relationship, IsFk = true, FkType = NbtViewRelatedIdType.ObjectClassId.ToString(), FkValue = userOCID, ServerManaged = true, SetValOnAdd = true } ); CswNbtMetaDataObjectClassProp dateSubmittedOCP = _CswNbtSchemaModTrnsctn.createObjectClassProp( feedbackOC, new CswNbtWcfMetaDataModel.ObjectClassProp() { PropName = CswNbtObjClassFeedback.DateSubmittedPropertyName, FieldType = CswNbtMetaDataFieldType.NbtFieldType.DateTime, Extended = CswNbtNodePropDateTime.DateDisplayMode.DateTime.ToString(), ServerManaged = true, SetValOnAdd = true } ); CswNbtMetaDataObjectClassProp categoryOCP = _CswNbtSchemaModTrnsctn.createObjectClassProp( feedbackOC, new CswNbtWcfMetaDataModel.ObjectClassProp() { PropName = CswNbtObjClassFeedback.CategoryPropertyName, FieldType = CswNbtMetaDataFieldType.NbtFieldType.List, ListOptions = "Bug Report,Feature Request,Question,Praise", SetValOnAdd = true } ); CswNbtMetaDataObjectClassProp subjectOCP = _CswNbtSchemaModTrnsctn.createObjectClassProp( feedbackOC, new CswNbtWcfMetaDataModel.ObjectClassProp() { PropName = CswNbtObjClassFeedback.SubjectPropertyName, FieldType = CswNbtMetaDataFieldType.NbtFieldType.Text, SetValOnAdd = true } ); _CswNbtSchemaModTrnsctn.createObjectClassProp( feedbackOC, new CswNbtWcfMetaDataModel.ObjectClassProp() { PropName = CswNbtObjClassFeedback.SummaryPropertyName, FieldType = CswNbtMetaDataFieldType.NbtFieldType.Memo, SetValOnAdd = true } ); CswNbtMetaDataObjectClassProp statusOCP = _CswNbtSchemaModTrnsctn.createObjectClassProp( feedbackOC, new CswNbtWcfMetaDataModel.ObjectClassProp() { PropName = CswNbtObjClassFeedback.StatusPropertyName, FieldType = CswNbtMetaDataFieldType.NbtFieldType.List, ListOptions = "Pending review,Resolved,Awaiting author response" } ); statusOCP.DefaultValue.Field1 = "Pending review"; //indicates the ball is in supports/admins court statusOCP.DefaultValue.Gestalt = "Pending review"; _CswNbtSchemaModTrnsctn.createObjectClassProp( feedbackOC, new CswNbtWcfMetaDataModel.ObjectClassProp() { PropName = CswNbtObjClassFeedback.LoadUserContextPropertyName, FieldType = CswNbtMetaDataFieldType.NbtFieldType.Button } ); CswNbtMetaDataObjectClassProp commentsOCP = _CswNbtSchemaModTrnsctn.createObjectClassProp( feedbackOC, new CswNbtWcfMetaDataModel.ObjectClassProp() { PropName = CswNbtObjClassFeedback.DiscussionPropertyName, FieldType = CswNbtMetaDataFieldType.NbtFieldType.Comments } ); _CswNbtSchemaModTrnsctn.createObjectClassProp( feedbackOC, new CswNbtWcfMetaDataModel.ObjectClassProp() { PropName = CswNbtObjClassFeedback.SelectedNodeIDPropertyName, FieldType = CswNbtMetaDataFieldType.NbtFieldType.Text, ServerManaged = true } ); _CswNbtSchemaModTrnsctn.createObjectClassProp( feedbackOC, new CswNbtWcfMetaDataModel.ObjectClassProp() { PropName = CswNbtObjClassFeedback.ViewPropertyName, //FieldType = CswNbtMetaDataFieldType.NbtFieldType.ViewPickList, FieldType = CswNbtMetaDataFieldType.NbtFieldType.ViewReference, ServerManaged = true } ); _CswNbtSchemaModTrnsctn.createObjectClassProp( feedbackOC, new CswNbtWcfMetaDataModel.ObjectClassProp() { PropName = CswNbtObjClassFeedback.ActionPropertyName, FieldType = CswNbtMetaDataFieldType.NbtFieldType.Text, ServerManaged = true } ); _CswNbtSchemaModTrnsctn.createObjectClassProp( feedbackOC, new CswNbtWcfMetaDataModel.ObjectClassProp() { PropName = CswNbtObjClassFeedback.CurrentViewModePropertyName, FieldType = CswNbtMetaDataFieldType.NbtFieldType.Text, ServerManaged = true } ); //create a default node-type of feedbackobj called feedback CswNbtMetaDataNodeType feedbackNT = _CswNbtSchemaModTrnsctn.MetaData.makeNewNodeType( feedbackOC.ObjectClassId, "Feedback", "System" ); feedbackNT.setNameTemplateText( CswNbtMetaData.MakeTemplateEntry( CswNbtObjClassFeedback.CaseNumberPropertyName ) ); CswNbtMetaDataObjectClass roleObj = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswNbtMetaDataObjectClass.NbtObjectClass.RoleClass ); //set default permissions Collection<CswNbtNode> roles = roleObj.getNodes( false, true ); foreach( CswNbtObjClassRole role in roles ) { _CswNbtSchemaModTrnsctn.Permit.set( Security.CswNbtPermit.NodeTypePermission.Create, feedbackNT, role, true ); _CswNbtSchemaModTrnsctn.Permit.set( Security.CswNbtPermit.NodeTypePermission.View, feedbackNT, role, true ); _CswNbtSchemaModTrnsctn.Permit.set( Security.CswNbtPermit.NodeTypePermission.Edit, feedbackNT, role, true ); } Int32 sequenceId = _CswNbtSchemaModTrnsctn.makeSequence( new CswSequenceName( "Feedback CaseNo" ), "F", "", 6, 1 ); CswNbtMetaDataNodeTypeProp caseNumberNTP = feedbackNT.getNodeTypePropByObjectClassProp( CswNbtObjClassFeedback.CaseNumberPropertyName ); caseNumberNTP.setSequence( sequenceId ); caseNumberNTP.ReadOnly = true; //default to read-only, but allow it to be changed CswNbtMetaDataNodeTypeProp authorNTP = feedbackNT.getNodeTypePropByObjectClassProp( CswNbtObjClassFeedback.AuthorPropertyName ); authorNTP.removeFromLayout( CswNbtMetaDataNodeTypeLayoutMgr.LayoutType.Add ); CswNbtMetaDataNodeTypeProp dateNTP = feedbackNT.getNodeTypePropByObjectClassProp( CswNbtObjClassFeedback.DateSubmittedPropertyName ); dateNTP.removeFromLayout( CswNbtMetaDataNodeTypeLayoutMgr.LayoutType.Add ); CswNbtMetaDataNodeTypeProp viewNTP = feedbackNT.getNodeTypePropByObjectClassProp( CswNbtObjClassFeedback.ViewPropertyName ); viewNTP.removeFromLayout( CswNbtMetaDataNodeTypeLayoutMgr.LayoutType.Edit ); CswNbtMetaDataNodeTypeProp actionNTP = feedbackNT.getNodeTypePropByObjectClassProp( CswNbtObjClassFeedback.ActionPropertyName ); actionNTP.removeFromLayout( CswNbtMetaDataNodeTypeLayoutMgr.LayoutType.Edit ); CswNbtMetaDataNodeTypeProp selectedNodeIdNTP = feedbackNT.getNodeTypePropByObjectClassProp( CswNbtObjClassFeedback.SelectedNodeIDPropertyName ); selectedNodeIdNTP.removeFromLayout( CswNbtMetaDataNodeTypeLayoutMgr.LayoutType.Edit ); CswNbtMetaDataNodeTypeProp currentViewModeNTP = feedbackNT.getNodeTypePropByObjectClassProp( CswNbtObjClassFeedback.CurrentViewModePropertyName ); currentViewModeNTP.removeFromLayout( CswNbtMetaDataNodeTypeLayoutMgr.LayoutType.Edit ); currentViewModeNTP.removeFromLayout( CswNbtMetaDataNodeTypeLayoutMgr.LayoutType.Add ); //create the role view for admins CswNbtNode adminRoleNode = _CswNbtSchemaModTrnsctn.Nodes.makeRoleNodeFromRoleName( "Administrator" ); if( null != adminRoleNode ) { CswNbtView feedbackView = _CswNbtSchemaModTrnsctn.makeView(); feedbackView.makeNew( "Feedback", NbtViewVisibility.Role, adminRoleNode.NodeId ); feedbackView.Category = "System"; //add root CswNbtViewRelationship ParentRelationship = feedbackView.AddViewRelationship( feedbackOC, true ); //add properties CswNbtViewProperty caseNumberVP = feedbackView.AddViewProperty( ParentRelationship, caseNumberOCP ); CswNbtViewProperty dateSubmittedVp = feedbackView.AddViewProperty( ParentRelationship, dateSubmittedOCP ); CswNbtViewProperty categoryVP = feedbackView.AddViewProperty( ParentRelationship, categoryOCP ); CswNbtViewProperty authorVP = feedbackView.AddViewProperty( ParentRelationship, authorOCP ); CswNbtViewProperty subjectVP = feedbackView.AddViewProperty( ParentRelationship, subjectOCP ); CswNbtViewProperty statusVP = feedbackView.AddViewProperty( ParentRelationship, statusOCP ); CswNbtViewProperty commentsVP = feedbackView.AddViewProperty( ParentRelationship, commentsOCP ); caseNumberVP.Order = 1; dateSubmittedVp.Order = 2; categoryVP.Order = 3; authorVP.Order = 4; subjectVP.Order = 5; statusVP.Order = 6; commentsVP.Order = 7; caseNumberVP.Width = 15; dateSubmittedVp.Width = 20; categoryVP.Width = 20; authorVP.Width = 20; subjectVP.Width = 25; statusVP.Width = 20; commentsVP.Width = 100; feedbackView.SetViewMode( NbtViewRenderingMode.Grid ); CswNbtViewPropertyFilter feedbackViewFilter = feedbackView.AddViewPropertyFilter( statusVP, FilterMode: CswNbtPropFilterSql.PropertyFilterMode.Equals, Value: "Pending review", ShowAtRuntime: true ); feedbackView.save(); } // create the global view for all users to view their own feedback CswNbtView myFeedbackView = _CswNbtSchemaModTrnsctn.makeView(); myFeedbackView.makeNew( "My Feedback", NbtViewVisibility.Global ); myFeedbackView.Category = "System"; //add root CswNbtViewRelationship myParentRelationship = myFeedbackView.AddViewRelationship( feedbackOC, true ); //add properties CswNbtViewProperty myCaseNumberVP = myFeedbackView.AddViewProperty( myParentRelationship, caseNumberOCP ); CswNbtViewProperty myDateSubmittedVp = myFeedbackView.AddViewProperty( myParentRelationship, dateSubmittedOCP ); CswNbtViewProperty myCategoryVP = myFeedbackView.AddViewProperty( myParentRelationship, categoryOCP ); CswNbtViewProperty myAuthorVP = myFeedbackView.AddViewProperty( myParentRelationship, authorOCP ); CswNbtViewProperty mySubjectVP = myFeedbackView.AddViewProperty( myParentRelationship, subjectOCP ); CswNbtViewProperty myStatusVP = myFeedbackView.AddViewProperty( myParentRelationship, statusOCP ); CswNbtViewProperty myCommentsVP = myFeedbackView.AddViewProperty( myParentRelationship, commentsOCP ); myCaseNumberVP.Order = 1; myDateSubmittedVp.Order = 2; myCategoryVP.Order = 3; myAuthorVP.Order = 4; mySubjectVP.Order = 5; myStatusVP.Order = 6; myCommentsVP.Order = 7; myCaseNumberVP.Width = 15; myDateSubmittedVp.Width = 20; myCategoryVP.Width = 20; myAuthorVP.Width = 20; mySubjectVP.Width = 25; myStatusVP.Width = 20; myCommentsVP.Width = 100; myFeedbackView.SetViewMode( NbtViewRenderingMode.Grid ); //observe "me", this is voodoo (or magic...w/e) and sets it to the current user (from steve) CswNbtViewPropertyFilter myFeedbackViewFilter = myFeedbackView.AddViewPropertyFilter( myAuthorVP, FilterMode: CswNbtPropFilterSql.PropertyFilterMode.Equals, Value: "me", ShowAtRuntime: false ); myFeedbackView.save(); }//Update()
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()
// 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 string renderViewPropFilter(ICswNbtUser RunAsUser, CswNbtViewPropertyFilter CswNbtViewPropertyFilterIn, Dictionary <string, string> ParameterCollection, int FilterNumber) { return(_CswNbtFieldTypeRuleDefault.renderViewPropFilter(RunAsUser, CswNbtViewPropertyFilterIn, ParameterCollection, FilterNumber)); }//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 == DateAnsweredSubField.Name || CswNbtSubField.Name == DateCorrectedSubField.Name) { ReturnVal = CswNbtFieldTypeRuleDateImpl.renderViewPropFilter(RunAsUser, _CswNbtFieldResources, CswNbtViewPropertyFilterIn, CswNbtSubField.Column); } else if (CswNbtSubField.Name == IsCompliantSubField.Name) { string ValueColumn = "jnp." + CswNbtSubField.Column.ToString(); 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 CswNbtFieldTypeRuleQuestion.renderViewPropFilter()"); } } else { ReturnVal = (_CswNbtFieldTypeRuleDefault.renderViewPropFilter(RunAsUser, CswNbtViewPropertyFilterIn, ParameterCollection, FilterNumber)); } return(ReturnVal); }//renderViewPropFilter()