示例#1
0
        private void Complete1(AsyncTask task)
        {
            GetFolderAndProxyRequest.GetFolderRequestTracer.TraceDebug((long)this.GetHashCode(), "{0}: Completed GetFolder requests.", new object[]
            {
                TraceContext.Get()
            });
            this.CheckResultsOfGetFolder();
            QueryList queryList = new QueryList(base.QueryList.Count);

            foreach (BaseQuery baseQuery in ((IEnumerable <BaseQuery>)base.QueryList))
            {
                if (baseQuery.Result == null || baseQuery.Result.ExceptionInfo == null)
                {
                    queryList.Add(baseQuery);
                }
            }
            if (queryList.Count == 0)
            {
                GetFolderAndProxyRequest.GetFolderRequestTracer.TraceDebug((long)this.GetHashCode(), "{0}: Completed and no ProxyWebRequest is necessary.", new object[]
                {
                    TraceContext.Get()
                });
                base.Complete();
                return;
            }
            this.proxyWebRequest = new ProxyWebRequest(base.Application, base.ClientContext, base.RequestType, base.RequestLogger, base.QueryList, this.targetVersion, this.proxyAuthenticator, this.webServiceUri, this.webServiceUri.Source);
            this.proxyWebRequest.BeginInvoke(new TaskCompleteCallback(this.Complete2));
        }
示例#2
0
        protected QueryList GetQueryListFromQueryItems(AutoDiscoverQueryItem[] queryItems)
        {
            QueryList queryList = new QueryList();

            foreach (AutoDiscoverQueryItem autoDiscoverQueryItem in queryItems)
            {
                if (autoDiscoverQueryItem.SourceQuery != null)
                {
                    queryList.Add(autoDiscoverQueryItem.SourceQuery);
                }
            }
            return(queryList);
        }
示例#3
0
        public void Add(string key, BaseQuery query, RequestType requestType, BaseRequestDispatcher.CreateRequestDelegate createRequestDelegate)
        {
            BaseRequestDispatcher.RequestRoutingTracer.TraceDebug((long)this.GetHashCode(), "{0}: Adding a proxy web request of type {1} for mailbox {2} to request key {3}", new object[]
            {
                TraceContext.Get(),
                requestType,
                query.Email,
                key
            });
            query.Type = new RequestType?(requestType);
            QueryList queryList;

            if (!this.queryListDictionary.TryGetValue(key, out queryList))
            {
                BaseRequestDispatcher.RequestRoutingTracer.TraceDebug <object, string>((long)this.GetHashCode(), "{0}: key {1} was not found. Creating new request for it", TraceContext.Get(), key);
                queryList = new QueryList();
                queryList.Add(query);
                this.requests.Add(createRequestDelegate(queryList));
                this.queryListDictionary.Add(key, queryList);
            }
            else
            {
                BaseRequestDispatcher.RequestRoutingTracer.TraceDebug <object, string>((long)this.GetHashCode(), "{0}: key {1} was found.", TraceContext.Get(), key);
                queryList.Add(query);
            }
            switch (requestType)
            {
            case RequestType.Local:
                PerformanceCounters.IntraSiteCalendarQueriesPerSecond.Increment();
                this.intraSiteQueryCount++;
                return;

            case RequestType.IntraSite:
                PerformanceCounters.IntraSiteProxyFreeBusyQueriesPerSecond.Increment();
                this.intraSiteProxyQueryCount++;
                return;

            case RequestType.CrossSite:
                PerformanceCounters.CrossSiteCalendarQueriesPerSecond.Increment();
                this.crossSiteQueryCount++;
                return;

            case RequestType.CrossForest:
                PerformanceCounters.CrossForestCalendarQueriesPerSecond.Increment();
                this.crossForestQueryCount++;
                return;

            case RequestType.FederatedCrossForest:
                PerformanceCounters.FederatedFreeBusyQueriesPerSecond.Increment();
                this.federatedCrossForestQueryCount++;
                return;

            case RequestType.PublicFolder:
                PerformanceCounters.PublicFolderQueriesPerSecond.Increment();
                this.publicFolderQueryCount++;
                return;

            default:
                return;
            }
        }