Exemplo n.º 1
0
 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;
 }
Exemplo n.º 5
0
        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;
 }