public bool addSystemViewFilter(SystemViewPropFilterDefinition FilterDefinition, ICswNbtMetaDataDefinitionObject MatchObj = null) { return(_addSystemViewFilterRecursive(SystemView.Root.ChildRelationships, FilterDefinition, MatchObj)); }
private bool _addSystemViewFilterRecursive(IEnumerable <CswNbtViewRelationship> Relationships, SystemViewPropFilterDefinition FilterDefinition, ICswNbtMetaDataDefinitionObject MatchObj = null) { bool Ret = false; ICswNbtMetaDataDefinitionObject ExpectedObjectClass = MatchObj ?? _EnforceObjectClassRelationship; foreach (CswNbtViewRelationship PotentialSystemViewRelationship in Relationships) { if (null == ExpectedObjectClass || PotentialSystemViewRelationship.SecondMatches(MatchObj)) { Ret = true; if (null != FilterDefinition.ObjectClassProp) { SystemView.AddViewPropertyAndFilter(PotentialSystemViewRelationship, FilterDefinition.ObjectClassProp, FilterDefinition.FilterValue, FilterMode: FilterDefinition.FilterMode, SubFieldName: FilterDefinition.SubFieldName, ShowInGrid: FilterDefinition.ShowInGrid); } else if (FilterDefinition.FieldType == CswEnumNbtFieldType.Barcode) { ICswNbtMetaDataObject Object = PotentialSystemViewRelationship.SecondMetaDataDefinitionObject(); SystemView.AddViewPropertyByFieldType(PotentialSystemViewRelationship, Object, FilterDefinition.FieldType); } } if (PotentialSystemViewRelationship.ChildRelationships.Count > 0) { Ret = Ret || _addSystemViewFilterRecursive(PotentialSystemViewRelationship.ChildRelationships, FilterDefinition, MatchObj); } } return(Ret); }