Ejemplo n.º 1
0
        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));
        }
Ejemplo n.º 3
0
        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);
 }
Ejemplo n.º 5
0
 internal static SearchCriteriaFlags SetSearchCriteriaFlagsToMapiSearchCriteriaFlags(SetSearchCriteriaFlags setSearchCriteriaFlags)
 {
     return((SearchCriteriaFlags)setSearchCriteriaFlags);
 }