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); } }
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); }