private static SetSearchCriteriaFlags CalculateSearchCriteriaFlags(bool deepTraversal, bool useCiForComplexQueries, SetSearchCriteriaFlags statisticsOnly, bool failNonContentIndexedSearch, SearchFolder.SearchType searchType) { EnumValidator.ThrowIfInvalid <SearchFolder.SearchType>(searchType, "searchType"); SetSearchCriteriaFlags setSearchCriteriaFlags = SetSearchCriteriaFlags.None; if (deepTraversal) { setSearchCriteriaFlags |= SetSearchCriteriaFlags.Recursive; } else { setSearchCriteriaFlags |= SetSearchCriteriaFlags.Shallow; } if (useCiForComplexQueries) { setSearchCriteriaFlags |= SetSearchCriteriaFlags.UseCiForComplexQueries; } setSearchCriteriaFlags |= statisticsOnly; if (failNonContentIndexedSearch) { setSearchCriteriaFlags |= SetSearchCriteriaFlags.FailNonContentIndexedSearch; } switch (searchType) { case SearchFolder.SearchType.RunOnce: setSearchCriteriaFlags |= (SetSearchCriteriaFlags.ContentIndexed | SetSearchCriteriaFlags.Static); break; case SearchFolder.SearchType.ContinousUpdate: setSearchCriteriaFlags |= SetSearchCriteriaFlags.NonContentIndexed; break; } return(setSearchCriteriaFlags | SetSearchCriteriaFlags.Restart); }
private SetSearchCriteriaFlags ConvertSearchCriteriaFlags(SearchCriteriaFlags mapiFlags) { SetSearchCriteriaFlags setSearchCriteriaFlags = SetSearchCriteriaFlags.None; setSearchCriteriaFlags |= this.GetMappedFlag(mapiFlags, SearchCriteriaFlags.Background, SetSearchCriteriaFlags.Background); setSearchCriteriaFlags |= this.GetMappedFlag(mapiFlags, SearchCriteriaFlags.ContentIndexed, SetSearchCriteriaFlags.ContentIndexed); setSearchCriteriaFlags |= this.GetMappedFlag(mapiFlags, SearchCriteriaFlags.ContentIndexedOnly, SetSearchCriteriaFlags.FailNonContentIndexedSearch); setSearchCriteriaFlags |= this.GetMappedFlag(mapiFlags, SearchCriteriaFlags.EstimateCountOnly, SetSearchCriteriaFlags.EstimateCountOnly); setSearchCriteriaFlags |= this.GetMappedFlag(mapiFlags, SearchCriteriaFlags.FailOnForeignEID, SetSearchCriteriaFlags.FailOnForeignEID); setSearchCriteriaFlags |= this.GetMappedFlag(mapiFlags, SearchCriteriaFlags.Foreground, SetSearchCriteriaFlags.Foreground); setSearchCriteriaFlags |= this.GetMappedFlag(mapiFlags, SearchCriteriaFlags.NonContentIndexed, SetSearchCriteriaFlags.NonContentIndexed); setSearchCriteriaFlags |= this.GetMappedFlag(mapiFlags, SearchCriteriaFlags.Recursive, SetSearchCriteriaFlags.Recursive); setSearchCriteriaFlags |= this.GetMappedFlag(mapiFlags, SearchCriteriaFlags.Restart, SetSearchCriteriaFlags.Restart); setSearchCriteriaFlags |= this.GetMappedFlag(mapiFlags, SearchCriteriaFlags.Shallow, SetSearchCriteriaFlags.Shallow); setSearchCriteriaFlags |= this.GetMappedFlag(mapiFlags, SearchCriteriaFlags.Static, SetSearchCriteriaFlags.Static); setSearchCriteriaFlags |= this.GetMappedFlag(mapiFlags, SearchCriteriaFlags.StatisticsOnly, SetSearchCriteriaFlags.StatisticsOnly); setSearchCriteriaFlags |= this.GetMappedFlag(mapiFlags, SearchCriteriaFlags.Stop, SetSearchCriteriaFlags.Stop); return(setSearchCriteriaFlags | this.GetMappedFlag(mapiFlags, SearchCriteriaFlags.UseCiForComplexQueries, SetSearchCriteriaFlags.UseCiForComplexQueries)); }
private void PreprocessSearch(SearchFolderCriteria searchFolderCriteria, SearchFolder.SearchType searchType, out SetSearchCriteriaFlags searchCriteriaFlags) { if (searchFolderCriteria == null) { throw new ArgumentNullException("searchFolderCriteria"); } if (this.IsDirty) { throw new InvalidOperationException(ServerStrings.ExMustSaveFolderToApplySearch); } this.DisposeCurrentSearch(); SetSearchCriteriaFlags setSearchCriteriaFlags = SetSearchCriteriaFlags.None; if (searchFolderCriteria.StatisticsOnly) { setSearchCriteriaFlags |= SetSearchCriteriaFlags.StatisticsOnly; } if (searchFolderCriteria.EstimateCountOnly) { setSearchCriteriaFlags |= SetSearchCriteriaFlags.EstimateCountOnly; } searchCriteriaFlags = SearchFolder.CalculateSearchCriteriaFlags(searchFolderCriteria.DeepTraversal, searchFolderCriteria.UseCiForComplexQueries, setSearchCriteriaFlags, searchFolderCriteria.FailNonContentIndexedSearch, searchType); }
private SetSearchCriteriaFlags GetMappedFlag(SearchCriteriaFlags mapiFlag, SearchCriteriaFlags mapiValue, SetSearchCriteriaFlags storageValue) { if ((mapiFlag & mapiValue) != SearchCriteriaFlags.None) { return(storageValue); } return(SetSearchCriteriaFlags.None); }
internal static SearchCriteriaFlags SetSearchCriteriaFlagsToMapiSearchCriteriaFlags(SetSearchCriteriaFlags setSearchCriteriaFlags) { return((SearchCriteriaFlags)setSearchCriteriaFlags); }