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)); }
protected QueryList GetQueryListFromQueryItems(AutoDiscoverQueryItem[] queryItems) { QueryList queryList = new QueryList(); foreach (AutoDiscoverQueryItem autoDiscoverQueryItem in queryItems) { if (autoDiscoverQueryItem.SourceQuery != null) { queryList.Add(autoDiscoverQueryItem.SourceQuery); } } return(queryList); }
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; } }