Exemple #1
0
        private void RenderMailSearchOptions()
        {
            SearchScope searchScope = this.userContext.UserOptions.GetSearchScope(OutlookModule.Mail);

            if (this.IsFlagSet(OptionsBar.RenderingFlags.ShowSearchContext) & this.isInSearch)
            {
                MessageModuleSearchViewState messageModuleSearchViewState = this.userContext.LastClientViewState as MessageModuleSearchViewState;
                if (messageModuleSearchViewState != null)
                {
                    searchScope = messageModuleSearchViewState.SearchScope;
                }
            }
            if (OptionsBar.SearchModule.Calendar != this.searchModule)
            {
                this.RenderMailSearchOption(SearchScope.SelectedFolder, SearchScope.SelectedFolder == searchScope, 1749416719);
            }
            if (this.userContext.MailboxSession.Mailbox.IsContentIndexingEnabled)
            {
                this.RenderMailSearchOption(SearchScope.AllFoldersAndItems, SearchScope.AllFoldersAndItems == searchScope, 591328129);
            }
        }
Exemple #2
0
 public OptionsBar(UserContext userContext, TextWriter writer, OptionsBar.SearchModule searchModule, OptionsBar.RenderingFlags renderingFlags, string searchUrlSuffix) : this(userContext, writer, searchModule)
 {
     if (this.IsFlagSet(OptionsBar.RenderingFlags.OptionsSelected) && this.IsFlagSet(OptionsBar.RenderingFlags.AddressBookSelected))
     {
         throw new ArgumentException("options and address book cannot both selected");
     }
     this.renderingFlags             = renderingFlags;
     this.searchUrlSuffix            = searchUrlSuffix;
     this.addressBookSearchViewState = (userContext.LastClientViewState as AddressBookSearchViewState);
     this.isInSearch = false;
     if (this.IsFlagSet(OptionsBar.RenderingFlags.ShowSearchContext))
     {
         if (OptionsBar.SearchModule.Mail == searchModule || OptionsBar.SearchModule.Calendar == searchModule)
         {
             MessageModuleSearchViewState messageModuleSearchViewState = userContext.LastClientViewState as MessageModuleSearchViewState;
             if (messageModuleSearchViewState != null && !string.IsNullOrEmpty(messageModuleSearchViewState.SearchString))
             {
                 this.isInSearch   = true;
                 this.searchString = messageModuleSearchViewState.SearchString;
                 return;
             }
         }
         else if (OptionsBar.SearchModule.Contacts == searchModule)
         {
             ContactModuleSearchViewState contactModuleSearchViewState = userContext.LastClientViewState as ContactModuleSearchViewState;
             if (contactModuleSearchViewState != null && !string.IsNullOrEmpty(contactModuleSearchViewState.SearchString))
             {
                 this.isInSearch   = true;
                 this.searchString = contactModuleSearchViewState.SearchString;
                 return;
             }
         }
         else if (this.addressBookSearchViewState != null && !string.IsNullOrEmpty(this.addressBookSearchViewState.SearchString))
         {
             this.isInSearch   = true;
             this.searchString = this.addressBookSearchViewState.SearchString;
         }
     }
 }
        public static ItemOperations.Result GetNextViewItem(UserContext userContext, ItemOperations.Action action, StoreObjectId itemId, StoreObjectId folderId)
        {
            Folder folder = null;

            ItemOperations.Result result;
            try
            {
                MessageModuleSearchViewState messageModuleSearchViewState = userContext.LastClientViewState as MessageModuleSearchViewState;
                SortBy[] sortOrder;
                if (messageModuleSearchViewState != null)
                {
                    using (Folder folder2 = Folder.Bind(userContext.MailboxSession, messageModuleSearchViewState.FolderId))
                    {
                        sortOrder = ItemOperations.GetSortOrder(userContext, folder2);
                        FolderSearch folderSearch = new FolderSearch();
                        folder = folderSearch.Execute(userContext, folder2, messageModuleSearchViewState.SearchScope, messageModuleSearchViewState.SearchString, userContext.ForceNewSearch, false);
                        userContext.ForceNewSearch = false;
                        goto IL_77;
                    }
                }
                folder    = Folder.Bind(userContext.MailboxSession, folderId);
                sortOrder = ItemOperations.GetSortOrder(userContext, folder);
IL_77:
                using (QueryResult queryResult = folder.ItemQuery(ItemQueryType.None, null, sortOrder, new PropertyDefinition[]
                {
                    ItemSchema.Id
                }))
                {
                    queryResult.SeekToCondition(SeekReference.OriginBeginning, new ComparisonFilter(ComparisonOperator.Equal, ItemSchema.Id, itemId));
                    int num  = queryResult.CurrentRow;
                    int num2 = queryResult.EstimatedRowCount;
                    int num3 = 0;
                    if (num == num2 || num2 == 1)
                    {
                        result = null;
                    }
                    else
                    {
                        switch (action)
                        {
                        case ItemOperations.Action.Next:
                            if (num + 1 == num2)
                            {
                                return(null);
                            }
                            num3 = queryResult.SeekToOffset(SeekReference.OriginCurrent, 1);
                            break;

                        case ItemOperations.Action.Prev:
                            if (num == 0)
                            {
                                return(null);
                            }
                            num3 = queryResult.SeekToOffset(SeekReference.OriginCurrent, -1);
                            break;

                        case ItemOperations.Action.Delete:
                            if (userContext.UserOptions.NextSelection == NextSelectionDirection.Previous)
                            {
                                if (num == 0)
                                {
                                    num3 = queryResult.SeekToOffset(SeekReference.OriginCurrent, 1);
                                    num3 = 0;
                                }
                                else
                                {
                                    num3 = queryResult.SeekToOffset(SeekReference.OriginCurrent, -1);
                                }
                            }
                            else if (userContext.UserOptions.NextSelection == NextSelectionDirection.Next)
                            {
                                if (num2 - (num + 1) == 0)
                                {
                                    num3 = queryResult.SeekToOffset(SeekReference.OriginCurrent, -1);
                                }
                                else
                                {
                                    num3 = queryResult.SeekToOffset(SeekReference.OriginCurrent, 1);
                                    num3 = 0;
                                }
                            }
                            else if (userContext.UserOptions.NextSelection == NextSelectionDirection.ReturnToView)
                            {
                                return(null);
                            }
                            num2--;
                            break;
                        }
                        num += num3;
                        if (messageModuleSearchViewState != null)
                        {
                            messageModuleSearchViewState.PageNumber = num / userContext.UserOptions.BasicViewRowCount + 1;
                        }
                        else
                        {
                            ListViewViewState listViewViewState = userContext.LastClientViewState as ListViewViewState;
                            if (listViewViewState != null && folderId.Equals(listViewViewState.FolderId))
                            {
                                listViewViewState.PageNumber = num / userContext.UserOptions.BasicViewRowCount + 1;
                            }
                        }
                        object[][] rows = queryResult.GetRows(1);
                        result = new ItemOperations.Result(((VersionedId)rows[0][0]).ObjectId, folderId);
                    }
                }
            }
            catch (ObjectNotFoundException)
            {
                result = null;
            }
            finally
            {
                if (folder != null)
                {
                    folder.Dispose();
                }
            }
            return(result);
        }