private bool CompareOrderBy(OrderByClause clause1, OrderByClause clause2, bool navigationNextLink)
        {
            if (clause1 == clause2)
            {
                return(true);
            }
            if (clause1 == null || clause2 == null)
            {
                return(false);
            }

            OeQueryNodeComparer queryNodeComparer = navigationNextLink ? new OeQueryNodeComparer(default(OeCacheComparerParameterValues)) : _queryNodeComparer;

            return(clause1.Direction == clause2.Direction &&
                   clause1.ItemType.IsEqual(clause2.ItemType) &&
                   queryNodeComparer.Compare(clause1.RangeVariable, clause2.RangeVariable) &&
                   queryNodeComparer.Compare(clause1.Expression, clause2.Expression) &&
                   CompareOrderBy(clause1.ThenBy, clause2.ThenBy, navigationNextLink));
        }
        private bool CompareFilter(FilterClause clause1, FilterClause clause2, bool navigationNextLink)
        {
            if (clause1 == clause2)
            {
                return(true);
            }
            if (clause1 == null || clause2 == null)
            {
                return(false);
            }

            if (!clause1.ItemType.IsEqual(clause1.ItemType))
            {
                return(false);
            }

            OeQueryNodeComparer queryNodeComparer = navigationNextLink ? new OeQueryNodeComparer(default(OeCacheComparerParameterValues)) : _queryNodeComparer;

            if (!queryNodeComparer.Compare(clause1.RangeVariable, clause2.RangeVariable))
            {
                return(false);
            }
            return(queryNodeComparer.Compare(clause1.Expression, clause2.Expression));
        }
 public OeCacheComparer(IReadOnlyDictionary <ConstantNode, Db.OeQueryCacheDbParameterDefinition> constantToParameterMapper, bool navigationNextLink)
 {
     _parameterValues    = new OeCacheComparerParameterValues(constantToParameterMapper);
     _queryNodeComparer  = new OeQueryNodeComparer(_parameterValues);
     _navigationNextLink = navigationNextLink;
 }
Exemplo n.º 4
0
 public OeODataUriComparer(IReadOnlyDictionary <ConstantNode, Db.OeQueryCacheDbParameterDefinition> constantToParameterMapper)
 {
     _parameterValues   = new OeODataUriComparerParameterValues(constantToParameterMapper);
     _queryNodeComparer = new OeQueryNodeComparer(_parameterValues);
 }