public BaseSearchFunction(string identifier, ISearchCriterionSet searchCriterionSet, Type type, Func <ISearchQuery, ISearchTask> searchFunction) { this.identifier = identifier; this.searchCriterionSet = searchCriterionSet; this.type = type; this.searchFunction = searchFunction; }
internal static XmlNamespaceSearchCriterionSet QualifyCriterionSetForOpenSearch(ISearchCriterionSet criterionSet) { if (criterionSet is XmlNamespaceSearchCriterionSet) { return(criterionSet as XmlNamespaceSearchCriterionSet); } XmlNamespaceSearchCriterionSet xmlCriterionSet = new XmlNamespaceSearchCriterionSet(); foreach (var criterion in criterionSet) { ISearchCriterion newCriterion = criterion; if (criterion is FreeTextSearchCriterion) { xmlCriterionSet.AddNamespacePrefixIfNotExist(OSNS_PREFIX); xmlCriterionSet.Add(XmlNamespaceSearchCriterionSet.QualifyCriterion(OSXN_SEARCHTERMS, criterion)); } else if (criterion is PageSizeSearchCriterion) { xmlCriterionSet.AddNamespacePrefixIfNotExist(OSNS_PREFIX); xmlCriterionSet.Add(XmlNamespaceSearchCriterionSet.QualifyCriterion(OSXN_COUNT, criterion)); } else if (criterion is StartIndexSearchCriterion) { xmlCriterionSet.AddNamespacePrefixIfNotExist(OSNS_PREFIX); xmlCriterionSet.Add(XmlNamespaceSearchCriterionSet.QualifyCriterion(OSXN_STARTINDEX, criterion)); } else if (criterion is StartPageSearchCriterion) { xmlCriterionSet.AddNamespacePrefixIfNotExist(OSNS_PREFIX); xmlCriterionSet.Add(XmlNamespaceSearchCriterionSet.QualifyCriterion(OSXN_STARTPAGE, criterion)); } else if (criterion is LanguageSearchCriterion) { xmlCriterionSet.AddNamespacePrefixIfNotExist(OSNS_PREFIX); xmlCriterionSet.Add(XmlNamespaceSearchCriterionSet.QualifyCriterion(OSXN_LANGUAGE, criterion)); } else { xmlCriterionSet.AddNamespacePrefixIfNotExist(UKNS_PREFIX); newCriterion = XmlNamespaceSearchCriterionSet.QualifyCriterion(new XmlQualifiedName(criterion.Identifier, UKNS), criterion); } } return(xmlCriterionSet); }
private static ISearchParameter CreateParameter(string identifier, string value, ISearchCriterionSet criterionSet) { ISearchCriterion criterion = criterionSet.GetCriterion(identifier); if (criterion == null) { return(null); } return(criterion.CreateParameter(value)); }