private static string CreateQueryStringUrlTemplate(string functionId, XmlNamespaceSearchCriterionSet xmlCriterionSet, HttpContext httpContext, IOpenSearchContext openSearchContext) { UriBuilder uriTemplate = new UriBuilder(openSearchContext.BaseSearchUrlTemplate.ToString().Replace("{functionId}", functionId)); uriTemplate.Query = xmlCriterionSet.ToQueryStringUrlTemplate(); return(uriTemplate.ToString()); }
public static XmlSerializerNamespaces GetExtraNamespacesIfAny(this XmlNamespaceSearchCriterionSet criterionSet) { if (criterionSet.NamespacePrefixes == null || criterionSet.NamespacePrefixes.Count() == 0) { return(null); } return(new XmlSerializerNamespaces( criterionSet.NamespacePrefixes.ToArray() )); }
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); }