Beispiel #1
0
 private bool Matches2(SearchParameters searchParameters)
 {
     foreach (SearchOptions search in searchParameters)
     {
         bool lastSearch = (!searchParameters.MatchAll) || searchParameters.IsLast(search);
         bool found;
         switch (search.SearchType)
         {
             case SearchType.ThemeName:
                 found = MatchName(search); break;
             case SearchType.ThemeSummary:
                 found = MatchSummary(search); break;
             case SearchType.ThemeDescription:
                 found = MatchDescription(search); break;
             case SearchType.ThemeTags:
                 found = MatchTags(search); break;
             case SearchType.Theme:
                 found = MatchName(search) || MatchSummary(search) || MatchDescription(search) || MatchTags(search); break;
             case SearchType.PubDate:
                 found = MatchDate(search); break;
             case SearchType.Metadata:
                 found = MatchMeta(search); break; //FIXME - since this is in a loop, we may load metadata multiple times
             default:
                 Debug.WriteLine("Invalid Search Condition");
                 found = false; break;
         }
         if (lastSearch && found)
             return true;
         if (searchParameters.MatchAll && !found)
             return false;
     }
     return false;
 }