コード例 #1
0
        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()));
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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]));
        }