예제 #1
0
        internal string GetPrefixForCriterion(IQualifiedSearchCriterion c)
        {
            var nsPrefix = namespacePrefixes.FirstOrDefault(nsp => nsp.Namespace == c.Namespace);

            if (nsPrefix == null)
            {
                return(null);
            }
            return(nsPrefix.Name);
        }
예제 #2
0
 private void AddCriterionNamespaceIfNotExist(IQualifiedSearchCriterion qcriterion)
 {
     if (!namespacePrefixes.Any(prefix => prefix.Namespace == qcriterion.Namespace))
     {
         for (int i = 0; i < namespacePrefixes.Count; i++)
         {
             if (namespacePrefixes.Any(prefix => prefix.Namespace == "ns" + i))
             {
                 continue;
             }
             namespacePrefixes.Add(new XmlQualifiedName("ns" + i, qcriterion.Namespace));
         }
     }
 }
예제 #3
0
        public override void Add(ISearchCriterion criterion)
        {
            IQualifiedSearchCriterion qcriterion = null;

            if (criterion is IQualifiedSearchCriterion)
            {
                qcriterion = criterion as IQualifiedSearchCriterion;
            }
            else
            {
                qcriterion = QualifyCriterion(criterion);
            }

            AddCriterionNamespaceIfNotExist(qcriterion);

            base.Add(criterion);
        }