Ejemplo n.º 1
0
        internal static IQueryable Where(this IQueryable source, Types.Constraint constraint, XmlNamespaceManager namespaceManager = null, bool mayRootPathBeImplied = false, IOperatorImplementationProvider operatorImplementationProvider = null)
        {
            Debug.Assert(source != null);
            if (source == null)
            {
                throw new ArgumentNullException("source");
            }
            Debug.Assert(constraint != null);
            if (constraint == null)
            {
                throw new ArgumentNullException("constraint");
            }

            IQueryable ret = source;

            //if (constraint.Filter!=null)
            if (constraint.Untyped.Descendants("{http://www.opengis.net/ogc}Filter").Any <XElement>())
            {
                ret = Filter110.FilterQueryable.Where(ret, constraint.Filter, namespaceManager, mayRootPathBeImplied, operatorImplementationProvider, (t, r) => new XPathQueryableNavigator(t, r));
            }

            if (!string.IsNullOrWhiteSpace(constraint.CqlText))
            {
                ret = Cql.CqlQueryable.Where(ret, constraint.CqlText, namespaceManager, mayRootPathBeImplied, operatorImplementationProvider);
            }

            return(ret);
        }
Ejemplo n.º 2
0
 internal static IQueryable <T> Where <T>(this IQueryable <T> source, Types.Constraint constraint, XmlNamespaceManager namespaceManager = null, bool mayRootPathBeImplied = false, IOperatorImplementationProvider operatorImplementationProvider = null)
 {
     return((IQueryable <T>)Where((IQueryable)source, constraint, namespaceManager, mayRootPathBeImplied, operatorImplementationProvider));
 }