Beispiel #1
0
 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));
        }