private static QueryFilter ReduceSecurityPrincipalFilter(QueryFilter filter) { if (filter.ToString() == FfoRecipientSession.userOrRoleGroupForExtendedSecurityPrincipal) { return(null); } CompositeFilter compositeFilter = filter as CompositeFilter; if (compositeFilter == null) { return(filter); } QueryFilter[] array = (from childFilter in compositeFilter.Filters.Select(new Func <QueryFilter, QueryFilter>(FfoRecipientSession.ReduceSecurityPrincipalFilter)) where childFilter != null select childFilter).ToArray <QueryFilter>(); if (array.Length == 0) { return(null); } if (array.Length == 1) { return(array[0]); } if (compositeFilter is AndFilter) { return(QueryFilter.AndTogether(array)); } if (compositeFilter is OrFilter) { return(QueryFilter.OrTogether(array)); } throw new NotSupportedException(HygieneDataStrings.ErrorQueryFilterType(filter.ToString())); }
private static string CheckInputType(IConfigurable obj) { if (obj == null) { throw new ArgumentNullException("AsyncQueueSession input"); } string name = obj.GetType().Name; if (!(obj is AsyncQueueRequest) && !(obj is AsyncQueueRequestStatusUpdate) && !(obj is AsyncQueueLog) && !(obj is AsyncQueueLogBatch)) { throw new InvalidObjectTypeForSessionException(HygieneDataStrings.ErrorInvalidObjectTypeForSession("AsyncQueueSession", name)); } return(name); }
TEntry IRecipientSession.FindByProxyAddress <TEntry>(ProxyAddress proxyAddress) { Func <IConfigurable, string> func = null; IConfigurable[] array = ((IConfigDataProvider)this).Find <TEntry>(new ComparisonFilter(ComparisonOperator.Equal, ADRecipientSchema.EmailAddresses, proxyAddress.AddressString), null, true, null); if (array == null || array.Length == 0) { return(default(TEntry)); } if (array.Length > 1) { string addressString = proxyAddress.AddressString; string separator = ","; IEnumerable <IConfigurable> source = array; if (func == null) { func = ((IConfigurable rcpt) => rcpt.Identity.ToString()); } throw new AmbiguousMatchException(HygieneDataStrings.ErrorMultipleMatchForUserProxy(addressString, string.Join(separator, source.Select(func).ToArray <string>()))); } return((TEntry)((object)array[0])); }