internal override IEnumerable <T> GetObjectsInOrganization <T>(string identityString, ADObjectId rootId, IDirectorySession session, OptionalIdentityData optionalData) { IEnumerable <T> objectsInOrganization = base.GetObjectsInOrganization <T>(identityString, rootId, session, optionalData); if (typeof(T) != typeof(TransportRule)) { return(objectsInOrganization); } ClassificationIdentityMatcher <Tuple <TransportRule, XDocument> > nameMatcher = this.CreateNameMatchFilter(identityString); if (nameMatcher == null) { return(objectsInOrganization); } List <T> list = objectsInOrganization.ToList <T>(); QueryFilter queryFilter = ClassificationRuleCollectionIdParameter.CreateExcludeFilter <T>(list); if (optionalData != null && optionalData.AdditionalFilter != null) { queryFilter = ((queryFilter == null) ? optionalData.AdditionalFilter : QueryFilter.AndTogether(new QueryFilter[] { queryFilter, optionalData.AdditionalFilter })); } IEnumerable <Tuple <TransportRule, XDocument> > source = DlpUtils.AggregateOobAndCustomClassificationDefinitions(session.SessionSettings.CurrentOrganizationId, session as IConfigurationSession, null, queryFilter, new ClassificationDefinitionsDataReader(false), null); return(list.Concat(from rulePackDataObject in source where nameMatcher.Match(rulePackDataObject) select(T)((object)rulePackDataObject.Item1))); }
protected virtual bool MatchObjectPropertyValue(string objectPropertyValue, CultureInfo cultureInfo, CompareOptions compareOption) { bool flag = this.matchOperator(objectPropertyValue, this.searchName, cultureInfo, compareOption); if (!flag && this.matchOperator != new Func <string, string, CultureInfo, CompareOptions, bool>(ClassificationIdentityMatcher <TObjectWithIdentity> .ExactMatch) && !string.IsNullOrEmpty(this.rawSearchName) && !this.areSearchNameAndRawSearchNameEqual) { flag = ClassificationIdentityMatcher <TObjectWithIdentity> .ExactMatch(objectPropertyValue, this.rawSearchName, cultureInfo, compareOption); } return(flag); }