}//renderViewPropFilter() public static string FilterModeToString(CswEnumNbtFilterMode FilterMode) { string ret = FilterMode.ToString(); if (FilterMode == CswEnumNbtFilterMode.GreaterThan) { ret = "After"; } else if (FilterMode == CswEnumNbtFilterMode.GreaterThanOrEquals) { ret = "After Or On"; } else if (FilterMode == CswEnumNbtFilterMode.LessThan) { ret = "Before"; } else if (FilterMode == CswEnumNbtFilterMode.LessThanOrEquals) { ret = "Before Or On"; } else if (FilterMode == CswEnumNbtFilterMode.Equals) { ret = "On"; } else if (FilterMode == CswEnumNbtFilterMode.NotEquals) { ret = "Not On"; } return(ret); }
/// <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); }
/// <summary> /// For creating a property filter /// </summary> public CswNbtViewPropertyFilter(CswNbtResources CswNbtResources, CswNbtView View, CswEnumNbtSubFieldName inSubFieldName, CswEnumNbtFilterMode inFilterMode, string inValue, CswEnumNbtFilterResultMode inResultMode, CswEnumNbtFilterConjunction PropertyFilterConjunction, bool inCaseSensitive = false, bool inShowAtRuntime = false) : base(CswNbtResources, View) { _constructor(CswNbtResources, View, inSubFieldName, inFilterMode, inValue, inResultMode, inCaseSensitive, inShowAtRuntime, PropertyFilterConjunction); }
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()
}//makeWhereClause() public string FilterModeToString(CswNbtSubField SubField, CswEnumNbtFilterMode FilterMode) { string ret = string.Empty; // Are we using a Date filter? if (SubField.Name == StartDateSubField.Name) { return(CswNbtFieldTypeRuleDateImpl.FilterModeToString(FilterMode)); } else { ret = _CswNbtFieldTypeRuleDefault.FilterModeToString(SubField, FilterMode); } return(ret); }
}//renderViewPropFilter() public string FilterModeToString(CswNbtSubField SubField, CswEnumNbtFilterMode FilterMode) { string ReturnVal = string.Empty; // Are we using a Date filter? if (SubField.Name == DateAnsweredSubField.Name || SubField.Name == DateCorrectedSubField.Name) { ReturnVal = CswNbtFieldTypeRuleDateImpl.FilterModeToString(FilterMode); } else { ReturnVal = _CswNbtFieldTypeRuleDefault.FilterModeToString(SubField, FilterMode); } return(ReturnVal); }
public static CswNbtView getMaterialNodeView( CswNbtResources NbtResources, Int32 NodeTypeId, string Tradename, CswPrimaryKey SupplierId, string PartNo = "", bool IsConstituent = false ) { if( Int32.MinValue == NodeTypeId || ( false == CswTools.IsPrimaryKey( SupplierId ) && false == IsConstituent ) || String.IsNullOrEmpty( Tradename ) ) { throw new CswDniException( CswEnumErrorType.Error, "Cannot get a material without a type, a supplier and a tradename.", "Attempted to call _getMaterialNodeView with invalid or empty parameters. Type: " + NodeTypeId + ", Tradename: " + Tradename + ", SupplierId: " + SupplierId ); } CswNbtView Ret = new CswNbtView( NbtResources ); Ret.ViewMode = CswEnumNbtViewRenderingMode.Tree; Ret.Visibility = CswEnumNbtViewVisibility.User; Ret.VisibilityUserId = NbtResources.CurrentNbtUser.UserId; CswNbtMetaDataNodeType MaterialNt = NbtResources.MetaData.getNodeType( NodeTypeId ); CswNbtViewRelationship MaterialRel = Ret.AddViewRelationship( MaterialNt, false ); CswNbtMetaDataNodeTypeProp TradeNameNtp = MaterialNt.getNodeTypePropByObjectClassProp( PropertyName.TradeName ); CswNbtMetaDataNodeTypeProp SupplierNtp = MaterialNt.getNodeTypePropByObjectClassProp( PropertyName.Supplier ); CswNbtMetaDataNodeTypeProp PartNoNtp = MaterialNt.getNodeTypePropByObjectClassProp( PropertyName.PartNumber ); Ret.AddViewPropertyAndFilter( MaterialRel, TradeNameNtp, Tradename ); // If we are looking for other Constituents, we don't need Supplier and PartNo if( false == IsConstituent ) { Ret.AddViewPropertyAndFilter( MaterialRel, SupplierNtp, SupplierId.PrimaryKey.ToString(), CswNbtFieldTypeRuleRelationship.SubFieldName.NodeID ); CswEnumNbtFilterMode PartNoFilterMode = CswEnumNbtFilterMode.Equals; if( string.IsNullOrEmpty( PartNo ) ) { PartNoFilterMode = CswEnumNbtFilterMode.Null; } Ret.AddViewPropertyAndFilter( MaterialRel, PartNoNtp, PartNo, FilterMode : PartNoFilterMode ); } if( NbtResources.Modules.IsModuleEnabled( CswEnumNbtModuleName.Containers ) ) { CswNbtMetaDataObjectClass SizeOc = NbtResources.MetaData.getObjectClass( CswEnumNbtObjectClass.SizeClass ); CswNbtMetaDataObjectClassProp MaterialOcp = SizeOc.getObjectClassProp( CswNbtObjClassSize.PropertyName.Material ); Ret.AddViewRelationship( MaterialRel, CswEnumNbtViewPropOwnerType.Second, MaterialOcp, false ); } Ret.ViewName = "New Material: " + Tradename; return Ret; }
private void _constructor(CswNbtResources CswNbtResources, CswNbtView View, CswEnumNbtSubFieldName inSubFieldName, CswEnumNbtFilterMode inFilterMode, string inValue, CswEnumNbtFilterResultMode inResultMode, bool inCaseSensitive, bool inShowAtRuntime, CswEnumNbtFilterConjunction inPropertyFilterConjunction) { SubfieldName = inSubFieldName; FilterMode = inFilterMode; Value = inValue; CaseSensitive = inCaseSensitive; ShowAtRuntime = inShowAtRuntime; ResultMode = inResultMode; Conjunction = inPropertyFilterConjunction; }
} // _addSystemViewPropFilter() private void _addSystemViewBarcodeFilter(object FilterValue, CswEnumNbtFilterMode FilterMode = null, CswEnumNbtFieldType FieldType = null) { FilterMode = FilterMode ?? CswEnumNbtFilterMode.Contains; foreach (CswNbtViewRelationship RootLevelRelationship in _NbtSystemView.SystemView.Root.ChildRelationships) { //CswNbtMetaDataObjectClass InstanceOc = null; //CswNbtMetaDataObjectClassProp BarcodeOcp = null; //if( NbtViewRelatedIdType.ObjectClassId == RootLevelRelationship.SecondType ) //{ // InstanceOc = _CswNbtResources.MetaData.getObjectClass( RootLevelRelationship.SecondId ); // if( null != InstanceOc ) // { // BarcodeOcp = (CswNbtMetaDataObjectClassProp) InstanceOc.getBarcodeProperty(); // } //} //else if( NbtViewRelatedIdType.NodeTypeId == RootLevelRelationship.SecondType ) //{ // CswNbtMetaDataNodeType InstanceNt = _CswNbtResources.MetaData.getNodeType( RootLevelRelationship.SecondId ); // if( null != InstanceNt ) // { // InstanceOc = InstanceNt.getObjectClass(); // CswNbtMetaDataNodeTypeProp BarcodeNtp = (CswNbtMetaDataNodeTypeProp) InstanceNt.getBarcodeProperty(); // if( null != BarcodeNtp ) // { // BarcodeOcp = BarcodeNtp.getObjectClassProp(); // } // } //} //else if( NbtViewRelatedIdType.PropertySetId == RootLevelRelationship.SecondType ) //{ // // Not much we can do... //} ICswNbtMetaDataDefinitionObject secondObj = _CswNbtResources.MetaData.getDefinitionObject(RootLevelRelationship.SecondType, RootLevelRelationship.SecondId); ICswNbtMetaDataProp BarcodeProp = secondObj.getBarcodeProperty(); if (null != BarcodeProp && null != secondObj) { string FilterValueString = CswConvert.ToString(FilterValue); CswNbtActSystemViews.SystemViewPropFilterDefinition ViewPropertyFilter = _NbtSystemView.makeSystemViewFilter(BarcodeProp, FilterValueString, FilterMode, FieldType: FieldType); _NbtSystemView.addSystemViewFilter(ViewPropertyFilter, secondObj); } } } // _addSystemViewBarcodeFilter()
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); }
}//makeWhereClause() public string FilterModeToString(CswNbtSubField SubField, CswEnumNbtFilterMode FilterMode) { return(_CswNbtFieldTypeRuleDefault.FilterModeToString(SubField, FilterMode)); }
/// <summary> /// Create properties based from the object class /// </summary> private void _setPropertyValuesFromObjectClass() { Dictionary <Int32, CswNbtObjClassDesignNodeTypeProp> NewNTPropsByOCPId = new Dictionary <Int32, CswNbtObjClassDesignNodeTypeProp>(); //int DisplayRow = 1; // Create/convert object class props foreach (CswNbtMetaDataObjectClassProp OCProp in ObjectClassPropertyValue.getObjectClassProps()) { CswNbtObjClassDesignNodeTypeProp PropNode = null; if (null != RelationalNodeType) { PropNode = (from Prop in RelationalNodeType.getNodeTypeProps() where (Prop.PropName == OCProp.PropName || Prop.getObjectClassPropName() == OCProp.PropName) && Prop.FieldTypeId == OCProp.FieldTypeId select Prop.DesignNode ).FirstOrDefault(); } // If converting, need to detect existing properties if (null != PropNode) { PropNode.ObjectClassPropName.Value = OCProp.PropId.ToString(); NewNTPropsByOCPId.Add(OCProp.PropId, PropNode); } else { string NewPropName = OCProp.PropName; while (null != RelationalNodeType && null != RelationalNodeType.getNodeTypeProp(NewPropName)) { NewPropName = NewPropName + " (new)"; } CswNbtMetaDataNodeType DesignNodeTypePropNT = _CswNbtResources.MetaData.getNodeType(CswNbtObjClassDesignNodeTypeProp.getNodeTypeName(OCProp.getFieldTypeValue())); PropNode = _CswNbtResources.Nodes.makeNodeFromNodeTypeId(DesignNodeTypePropNT.NodeTypeId, delegate(CswNbtNode NewNode) { ((CswNbtObjClassDesignNodeTypeProp)NewNode).NodeTypeValue.RelatedNodeId = this.NodeId; ((CswNbtObjClassDesignNodeTypeProp)NewNode).ObjectClassPropName.Value = OCProp.PropId.ToString(); ((CswNbtObjClassDesignNodeTypeProp)NewNode).FieldType.Value = OCProp.FieldTypeId.ToString(); ((CswNbtObjClassDesignNodeTypeProp)NewNode).PropName.Text = NewPropName; }); NewNTPropsByOCPId.Add(OCProp.ObjectClassPropId, PropNode); } // if-else( null != PropNode ) //only update the layout when we're not overriding an existing nodetype PropNode.syncFromObjectClassProp(false == _overrideNodeConversionCheck); } // foreach( CswNbtMetaDataObjectClassProp OCProp in ObjectClassPropertyValue.getObjectClassProps() ) // Now that we're done with all object class props, we can handle filters foreach (CswNbtMetaDataObjectClassProp OCProp in ObjectClassPropertyValue.getObjectClassProps()) { if (OCProp.hasFilter()) { CswNbtObjClassDesignNodeTypeProp NTProp = NewNTPropsByOCPId[OCProp.ObjectClassPropId]; if (null != NTProp) { CswNbtObjClassDesignNodeTypeProp TargetOfFilter = NewNTPropsByOCPId[OCProp.FilterObjectClassPropId]; if (TargetOfFilter != null) { CswNbtSubField SubField = null; CswEnumNbtFilterMode FilterMode = CswEnumNbtFilterMode.Unknown; string FilterValue = string.Empty; OCProp.getFilter(ref SubField, ref FilterMode, ref FilterValue); // We don't have to worry about versioning in this function NTProp.DisplayConditionProperty.RelatedNodeId = TargetOfFilter.NodeId; NTProp.DisplayConditionSubfield.Value = SubField.Name.ToString(); NTProp.DisplayConditionFilterMode.Value = FilterMode.ToString(); NTProp.DisplayConditionValue.Text = FilterValue; NTProp.postChanges(false); } // if( TargetOfFilter != null ) } // if( null != NTProp ) } // if( OCProp.hasFilter() ) } // foreach( CswNbtMetaDataObjectClassProp OCProp in ObjectClassProps ) // Handle search defer inheritance from object classes if (Int32.MinValue != ObjectClassPropertyValue.SearchDeferPropId) { //if( CswNbtMetaDataObjectClass.NotSearchableValue != ObjectClassPropertyValue.SearchDeferPropId ) //{ CswNbtObjClassDesignNodeTypeProp SearchDeferProp = NewNTPropsByOCPId[ObjectClassPropertyValue.SearchDeferPropId]; this.DeferSearchTo.RelatedNodeId = SearchDeferProp.NodeId; //} //else //{ // this.DeferSearchTo.RelatedNodeId = null; //} } } // _setPropertyValuesFromObjectClass()
}//makeWhereClause() public string FilterModeToString(CswNbtSubField SubField, CswEnumNbtFilterMode FilterMode) { return(CswNbtFieldTypeRuleDateImpl.FilterModeToString(FilterMode)); }
}//makeWhereClause() public string FilterModeToString(CswNbtSubField SubField, CswEnumNbtFilterMode FilterMode) { // Default implementation return(FilterMode.ToString()); }
private void _addSystemViewPropFilter(CswEnumNbtObjectClass ObjectClass, string PropertyName, object FilterValue, CswEnumNbtFilterMode FilterMode = null, CswEnumNbtFieldType FieldType = null) { if (ObjectClass != CswNbtResources.UnknownEnum) { FilterMode = FilterMode ?? CswEnumNbtFilterMode.Contains; CswNbtMetaDataObjectClass InstanceOc = _CswNbtResources.MetaData.getObjectClass(ObjectClass); if (null != InstanceOc) { CswNbtMetaDataObjectClassProp InstancePropertyOcp = InstanceOc.getObjectClassProp(PropertyName); if (null != InstancePropertyOcp) { string FilterValueString = CswConvert.ToString(FilterValue); CswNbtActSystemViews.SystemViewPropFilterDefinition ViewPropertyFilter = _NbtSystemView.makeSystemViewFilter(InstancePropertyOcp, FilterValueString, FilterMode, FieldType: FieldType); _NbtSystemView.addSystemViewFilter(ViewPropertyFilter, InstanceOc); } } } } // _addSystemViewPropFilter()
public SystemViewPropFilterDefinition makeSystemViewFilter(ICswNbtMetaDataProp ObjectClassProp, string FilterValue, CswEnumNbtFilterMode FilterMode, CswEnumNbtSubFieldName SubFieldName = null, CswEnumNbtFieldType FieldType = null, bool ShowInGrid = true) { SubFieldName = SubFieldName ?? ObjectClassProp.getFieldTypeRule().SubFields.Default.Name; return(new SystemViewPropFilterDefinition { ObjectClassProp = ObjectClassProp, FilterValue = FilterValue, FilterMode = FilterMode, SubFieldName = SubFieldName, FieldType = FieldType, ShowInGrid = ShowInGrid }); }