public IAsyncResult BeginFindMailboxStatisticsByKeywords(FindMailboxStatisticsByKeywordsType findMailboxStatisticsByKeywords1, AsyncCallback callback, object asyncState)
 {
     return(base.BeginInvoke("FindMailboxStatisticsByKeywords", new object[]
     {
         findMailboxStatisticsByKeywords1
     }, callback, asyncState));
 }
 public void FindMailboxStatisticsByKeywordsAsync(FindMailboxStatisticsByKeywordsType findMailboxStatisticsByKeywords1, object userState)
 {
     if (this.findMailboxStatisticsByKeywordsOperationCompleted == null)
     {
         this.findMailboxStatisticsByKeywordsOperationCompleted = new SendOrPostCallback(this.OnFindMailboxStatisticsByKeywordsOperationCompleted);
     }
     base.InvokeAsync("FindMailboxStatisticsByKeywords", new object[]
     {
         findMailboxStatisticsByKeywords1
     }, this.findMailboxStatisticsByKeywordsOperationCompleted, userState);
 }
 public void FindMailboxStatisticsByKeywordsAsync(FindMailboxStatisticsByKeywordsType findMailboxStatisticsByKeywords1)
 {
     this.FindMailboxStatisticsByKeywordsAsync(findMailboxStatisticsByKeywords1, null);
 }
            public FindMailboxStatisticsByKeywordsResponseType FindMailboxStatisticsByKeywords([XmlElement("FindMailboxStatisticsByKeywords", Namespace = "http://schemas.microsoft.com/exchange/services/2006/messages")] FindMailboxStatisticsByKeywordsType findMailboxStatisticsByKeywords1)
            {
                object[] array = this.Invoke("FindMailboxStatisticsByKeywords", new object[]
                {
                    findMailboxStatisticsByKeywords1
                });

                return((FindMailboxStatisticsByKeywordsResponseType)array[0]);
            }
        public IList <KeywordHit> FindMailboxStatisticsByKeywords(ExchangePrincipal principal, SearchObject searchObject)
        {
            FindMailboxStatisticsByKeywordsType findMailboxStatisticsByKeywordsType = new FindMailboxStatisticsByKeywordsType
            {
                Mailboxes = new UserMailboxType[]
                {
                    new UserMailboxType
                    {
                        Id        = (principal.MailboxInfo.IsArchive ? principal.MailboxInfo.MailboxGuid.ToString() : principal.MailboxInfo.RemoteIdentity.Value.ToString()),
                        IsArchive = principal.MailboxInfo.IsArchive
                    }
                },
                Keywords = new string[]
                {
                    searchObject.SearchQuery
                }
            };

            if (searchObject.Language != null)
            {
                findMailboxStatisticsByKeywordsType.Language = searchObject.Language.ToString();
            }
            if (searchObject.Senders != null && searchObject.Senders.Count > 0)
            {
                findMailboxStatisticsByKeywordsType.Senders = searchObject.Senders.ToArray();
            }
            if (searchObject.Recipients != null && searchObject.Recipients.Count > 0)
            {
                findMailboxStatisticsByKeywordsType.Recipients = searchObject.Recipients.ToArray();
            }
            if (searchObject.StartDate != null)
            {
                findMailboxStatisticsByKeywordsType.FromDate          = (DateTime)searchObject.StartDate.Value.ToUtc();
                findMailboxStatisticsByKeywordsType.FromDateSpecified = true;
            }
            if (searchObject.EndDate != null)
            {
                findMailboxStatisticsByKeywordsType.ToDate          = (DateTime)searchObject.EndDate.Value.ToUtc();
                findMailboxStatisticsByKeywordsType.ToDateSpecified = true;
            }
            if (searchObject.SearchDumpster)
            {
                findMailboxStatisticsByKeywordsType.SearchDumpster          = true;
                findMailboxStatisticsByKeywordsType.SearchDumpsterSpecified = true;
            }
            if (searchObject.IncludePersonalArchive)
            {
                findMailboxStatisticsByKeywordsType.IncludePersonalArchive          = true;
                findMailboxStatisticsByKeywordsType.IncludePersonalArchiveSpecified = true;
            }
            if (searchObject.IncludeUnsearchableItems)
            {
                findMailboxStatisticsByKeywordsType.IncludeUnsearchableItems          = true;
                findMailboxStatisticsByKeywordsType.IncludeUnsearchableItemsSpecified = true;
            }
            if (searchObject.MessageTypes != null && searchObject.MessageTypes.Count > 0)
            {
                List <SearchItemKindType> list = new List <SearchItemKindType>(searchObject.MessageTypes.Count);
                foreach (KindKeyword kindKeyword in searchObject.MessageTypes)
                {
                    list.Add((SearchItemKindType)Enum.Parse(typeof(SearchItemKindType), kindKeyword.ToString(), true));
                }
                findMailboxStatisticsByKeywordsType.MessageTypes = list.ToArray();
            }
            FindMailboxStatisticsByKeywordsResponseType findMailboxStatisticsByKeywordsResponseType = null;
            int       num = 0;
            Exception ex  = null;

            do
            {
                try
                {
                    ex = null;
                    findMailboxStatisticsByKeywordsResponseType = this.binding.FindMailboxStatisticsByKeywords(findMailboxStatisticsByKeywordsType);
                    break;
                }
                catch (SoapException ex2)
                {
                    ex = ex2;
                }
                catch (WebException ex3)
                {
                    ex = ex3;
                }
                catch (IOException ex4)
                {
                    ex = ex4;
                }
                catch (InvalidOperationException ex5)
                {
                    ex = ex5;
                }
            }while (++num < 3);
            if (ex != null)
            {
                ExTraceGlobals.SessionTracer.TraceError((long)this.GetHashCode(), ex.ToString());
                throw new MailboxSearchEwsFailedException(ex.Message);
            }
            if (findMailboxStatisticsByKeywordsResponseType != null && findMailboxStatisticsByKeywordsResponseType.ResponseMessages != null && findMailboxStatisticsByKeywordsResponseType.ResponseMessages.Items != null && findMailboxStatisticsByKeywordsResponseType.ResponseMessages.Items.Length > 0)
            {
                List <KeywordHit> list2 = new List <KeywordHit>(findMailboxStatisticsByKeywordsResponseType.ResponseMessages.Items.Length);
                foreach (FindMailboxStatisticsByKeywordsResponseMessageType findMailboxStatisticsByKeywordsResponseMessageType in findMailboxStatisticsByKeywordsResponseType.ResponseMessages.Items)
                {
                    if (findMailboxStatisticsByKeywordsResponseMessageType.ResponseClass != ResponseClassType.Success)
                    {
                        ExTraceGlobals.SessionTracer.TraceError <ResponseClassType, ResponseCodeType, string>((long)this.GetHashCode(), "FindMailboxStatisticsByKeywords EWS call failed with response. ResponseClass={0}, ResponseCode={1}, MessageText={2}", findMailboxStatisticsByKeywordsResponseMessageType.ResponseClass, findMailboxStatisticsByKeywordsResponseMessageType.ResponseCode, findMailboxStatisticsByKeywordsResponseMessageType.MessageText);
                        throw new MailboxSearchEwsFailedException(findMailboxStatisticsByKeywordsResponseMessageType.MessageText);
                    }
                    MailboxStatisticsSearchResultType mailboxStatisticsSearchResult = findMailboxStatisticsByKeywordsResponseMessageType.MailboxStatisticsSearchResult;
                    KeywordStatisticsSearchResultType keywordStatisticsSearchResult = mailboxStatisticsSearchResult.KeywordStatisticsSearchResult;
                    list2.Add(new KeywordHit
                    {
                        Phrase       = keywordStatisticsSearchResult.Keyword,
                        Count        = keywordStatisticsSearchResult.ItemHits,
                        MailboxCount = ((keywordStatisticsSearchResult.ItemHits > 0) ? 1 : 0),
                        Size         = new ByteQuantifiedSize((ulong)keywordStatisticsSearchResult.Size)
                    });
                }
                return(list2);
            }
            ExTraceGlobals.SessionTracer.TraceError((long)this.GetHashCode(), "Response of FindMailboxStatisticsByKeywords is empty");
            throw new MailboxSearchEwsFailedException(ServerStrings.MailboxSearchEwsEmptyResponse);
        }