public QueryDescription(ResultFilterClause resultFilter, FromClause fromClause, Expression criteria, IEnumerable <SortClause> sortClauses) { ResultFilter = resultFilter; From = fromClause; Criteria = criteria; _sortClauses = new List <SortClause>(sortClauses); }
public ResultFilterClause ResetResultFilters(Type resultType, ResultFilterType resultFilterType, int selectorArgument) { ResultFilters.Clear(); var resultFilterClause = new ResultFilterClause(resultType, resultFilterType, selectorArgument); ResultFilters.Add(resultFilterClause); return resultFilterClause; }
public ResultFilterClause AddTakeResultFilter(Type resultType, int takeCount) { var filter = new ResultFilterClause(resultType, ResultFilterType.Take, 0) { TakeCount = takeCount }; ResultFilters.Add(filter); return filter; }
public ResultFilterClause AddSkipResultFilter(Type resultType, int skipCount) { var filter = new ResultFilterClause(resultType, ResultFilterType.Skip, 0) { SkipCount = skipCount }; ResultFilters.Add(filter); return filter; }
public void HiveQueryCacheKeyToFromJson() { var guid = Guid.NewGuid(); var guid2 = Guid.NewGuid(); var guid3 = Guid.NewGuid(); var resultFilterClause = new ResultFilterClause(typeof(string), ResultFilterType.Any, 0); var hiveId = new HiveId(guid); var expected = new HiveId(guid2); var fullHiveId = new HiveId(new Uri("content://blah/"), "nhibernate", new HiveIdValue(guid3)); var scopeStartId = new HiveId(Guid.NewGuid()); var fromClause = new FromClause(scopeStartId.AsEnumerableOfOne(), HierarchyScope.AncestorsOrSelf, FixedStatusTypes.Published, "default-type", new[] { hiveId, expected, fullHiveId }); var fieldPredicateExpression = new FieldPredicateExpression("title", ValuePredicateType.Equal, "blah"); var fieldPredicateExpression2 = new FieldPredicateExpression("title", ValuePredicateType.Equal, "blah"); var binary = Expression.MakeBinary(ExpressionType.ExclusiveOr, fieldPredicateExpression, fieldPredicateExpression2); var aSortClause = new SortClause(new FieldSelectorExpression("tag"), SortDirection.Descending, 2); //var key = new HiveQueryCacheKey(new QueryDescription(resultFilterClause, fromClause, fieldPredicateExpression, Enumerable.Empty<SortClause>())); var key = CacheKey.Create(new HiveQueryCacheKey(new QueryDescription(resultFilterClause, fromClause, fieldPredicateExpression, aSortClause.AsEnumerableOfOne()))); var keyJson = key.ToJson(); var keyBack = (CacheKey<HiveQueryCacheKey>)keyJson; // var keyJsonTwice = keyBack.ToJson(); Assert.That(keyBack, Is.Not.Null); //Assert.That(keyJson, Is.EqualTo(keyJsonTwice)); //NOTE: Criteria does not deserialize at the moment, but caching implementation should find matching keys OK still if it maintains an inner collection of original key objects if (key.Original.Criteria != null) Assert.That(keyBack.Original.Criteria, Is.Not.Null); Assert.True(keyBack.Original.ResultFilters.Any()); Assert.That(keyBack.Original.ResultFilters.First().ResultType, Is.EqualTo(typeof(string))); Assert.That(keyBack.Original.SortClauses.Count(), Is.EqualTo(key.Original.SortClauses.Count())); Assert.That(keyBack.Original.SortClauses.FirstOrDefault().Direction, Is.EqualTo(SortDirection.Descending)); Assert.That(keyBack.Original.SortClauses.FirstOrDefault().Priority, Is.EqualTo(2)); Assert.That(keyBack.Original.From.HierarchyScope, Is.EqualTo(key.Original.From.HierarchyScope)); Assert.That(keyBack.Original.From.RequiredEntityIds.Count(), Is.EqualTo(3)); Assert.That(keyBack.Original.From.RequiredEntityIds.FirstOrDefault(), Is.EqualTo(hiveId)); Assert.That(keyBack.Original.From.RequiredEntityIds.FirstOrDefault().Value.Type, Is.EqualTo(HiveIdValueTypes.Guid)); Assert.That(keyBack.Original.From.RequiredEntityIds.ElementAt(1), Is.EqualTo(expected)); Assert.That(keyBack.Original.From.RequiredEntityIds.ElementAt(1).Value.Type, Is.EqualTo(HiveIdValueTypes.Guid)); Assert.That(keyBack.Original.From.RequiredEntityIds.ElementAt(2), Is.EqualTo(fullHiveId)); Assert.That(keyBack.Original.From.RequiredEntityIds.ElementAt(2).Value.Type, Is.EqualTo(HiveIdValueTypes.Guid)); Assert.That(keyBack.Original.From.RequiredEntityIds.ElementAt(2).ProviderId, Is.EqualTo("nhibernate")); Assert.That(keyBack.Original.From.RequiredEntityIds.ElementAt(2).ProviderGroupRoot.ToString(), Is.EqualTo(fullHiveId.ProviderGroupRoot.ToString())); }
public ResultFilterClause SetResultFilterClause(Type resultType, ResultFilterType resultFilterType, int selectorArgument) { ResultFilter = new ResultFilterClause(resultType, resultFilterType, selectorArgument); return(ResultFilter); }
public ResultFilterClause AddResultFilter(Type resultType, ResultFilterType resultFilterType, int selectorArgument) { var filter = new ResultFilterClause(resultType, resultFilterType, selectorArgument); ResultFilters.Add(filter); return filter; }