public void Negate_criterion_query()
        {
            var criterion = Criterions.Not(Criterions.Equals("Alexey"));
            var builder   = new QueryBuilder(Criterions.Field <Person, string>(x => x.Name.Firstname, criterion));

            AssertFoundPutin(builder);
        }
Beispiel #2
0
        public void Starts_with_criterion_query()
        {
            var criterion = Criterions.StartsWith("Ale");
            var builder   = new QueryBuilder(Criterions.Field <Person, string>(x => x.Name.Firstname, criterion));

            AssertFoundNavalny(builder);
        }
Beispiel #3
0
        private JsonResponse CheckLogin()
        {
            if (Request.Query.ContainsKey("Login"))
            {
                return(new JsonResponse(true, new DefaultJsonSerializer()));
            }

            string login = Request.Query.Login;

            var byName = Criterions.Field <User, string>(x => x.Login, Criterions.Equals(login));

            var builder = new QueryBuilder(byName);

            using (var query = _users.CreateQuery <User>(builder))
                using (var cursor = query.Execute(QueryMode.Count))
                {
                    if (cursor.Count > 0)
                    {
                        var message = string.Format("Login '{0}' already exists", login);
                        return(new JsonResponse(message, new DefaultJsonSerializer()));
                    }
                }

            return(new JsonResponse(true, new DefaultJsonSerializer()));
        }
        public void Greater_than_query()
        {
            var criterion = Criterions.GreaterThan(40);

            var builder = new QueryBuilder(Criterions.Field <Person, int>(x => x.Age, criterion));

            AssertFoundPutin(builder);
        }
Beispiel #5
0
        public void String_all_query()
        {
            var criterion = Criterions.All("Patriotic", "speech");

            var builder = new QueryBuilder(Criterions.Field <Person, string[]>(x => x.Hobbies, criterion));

            AssertFoundPutin(builder);
        }
        public void Lower_than_or_equal_query()
        {
            var criterion = Criterions.LowerThanOrEqual(36);

            var builder = new QueryBuilder(Criterions.Field <Person, int>(x => x.Age, criterion));

            AssertFoundNavalny(builder);
        }
Beispiel #7
0
        public void String_any_with_ignore_case_query()
        {
            var criterion = Criterions.IgnoreCase(Criterions.Any("patriotic"));

            var builder = new QueryBuilder(Criterions.Field <Person, string[]>(x => x.Hobbies, criterion));

            AssertFoundPutin(builder);
        }
        public void In_criterion_query()
        {
            var criterion = Criterions.Field <Person, int>(x => x.Age, Criterions.In(36, 52));

            var builder = new QueryBuilder(criterion);

            AssertFoundNavalny(builder);
        }
Beispiel #9
0
        public void String_ignore_case_query()
        {
            var criterion = Criterions.IgnoreCase(Criterions.Any("PUTIN"));

            var builder = new QueryBuilder(Criterions.Field <Person, string>(x => x.Name.Surname, criterion));

            AssertFoundPutin(builder);
        }
        public void Between_query()
        {
            var criterion = Criterions.Between(30, 40);

            var builder = new QueryBuilder(Criterions.Field <Person, int>(x => x.Age, criterion));

            AssertFoundNavalny(builder);
        }
        public void Not_in_criterion_query()
        {
            var criterion = Criterions.Field <Person, int>(x => x.Age, Criterions.NotIn(36, 52));

            var builder = new QueryBuilder(criterion);

            AssertFoundPutin(builder);
        }
        public void Match_criterion_query()
        {
            var criterion = Criterions.Equals("Alexey");

            var builder = new QueryBuilder(Criterions.Field <Person, string>(x => x.Name.Firstname, criterion));

            AssertFoundNavalny(builder);
        }
Beispiel #13
0
        private static User GetExistingUser(Collection users, string username)
        {
            var byLogin      = Criterions.Field <User, string>(x => x.Login, Criterions.Equals(username));
            var queryBuilder = new QueryBuilder(byLogin);

            using (var query = users.CreateQuery <User>(queryBuilder))
                using (var cursor = query.Execute())
                {
                    return(cursor.Count != 0 ? cursor[0] : null);
                }
        }
        public void Or_criterion_query()
        {
            var byName = Criterions.Field <Person, string>(x => x.Name.Firstname, Criterions.Equals("Alexey"));
            var byAge  = Criterions.Field <Person, int>(x => x.Age, Criterions.Equals(61));

            var criterion = Criterions.Or(byName, byAge);

            var builder = new QueryBuilder(criterion);

            AssertFoundBoth(builder);
        }
        public void And_criterion_query()
        {
            var byName = Criterions.Field <Person, string>(x => x.Name.Firstname, Criterions.Equals("Alexey"));
            var byAge  = Criterions.Field <Person, int>(x => x.Age, Criterions.Equals(36));

            var andCritertion = Criterions.And(byName, byAge);

            var builder = new QueryBuilder(andCritertion);

            AssertFoundNavalny(builder);
        }
Beispiel #16
0
        private static bool ThereIsNoDomainUsers(Collection users)
        {
            var byDomain     = Criterions.Field <User, bool>(x => x.IsDomain, Criterions.Equals(true));
            var queryBuilder = new QueryBuilder(byDomain);

            using (var query = users.CreateQuery <User>(queryBuilder))
                using (var cursor = query.Execute(QueryMode.Count))
                {
                    return(cursor.Count == 0);
                }
        }
        public void Element_match_criterion_simple_array_query()
        {
            var criterion = Criterions.Field <Person, string[]>(
                x => x.Hobbies,
                Criterions.MatchElement(
                    Criterions.Equals("Power")));

            var builder = new QueryBuilder(criterion);

            AssertFoundPutin(builder);
        }
        public void Not_exists_criterion_query()
        {
            var criterion = Criterions.FieldNotExists();

            var builder = new QueryBuilder(Criterions.Field <Person, string>(x => x.Name.Firstname, criterion));

            using (var query = Collection.CreateQuery <Person>(builder))
                using (var cursor = query.Execute(QueryMode.Explain))
                {
                    Console.WriteLine(cursor.GetLog());

                    Assert.That(cursor.Count, Is.EqualTo(0));
                }
        }
        public DeleteFeedResponse Handle(DeleteFeedRequest message)
        {
            var criterion = Criterions.Field(nameof(Domain.Deployment.FeedId), Criterions.Equals(message.Id));

            var builder   = new QueryBuilder(criterion);
            var feedInUse = _repository.Deployments.PerformQuery <Domain.Deployment>(builder).Length > 0;

            if (feedInUse)
            {
                return(new DeleteFeedResponse("Feed use. Remove it from deployments to delete"));
            }
            _repository.Feeds.Delete(message.Id);
            return(new DeleteFeedResponse(null));
        }
        public void Element_match_criterion_complex_property_query()
        {
            var criterion = Criterions.Field <Person, Name>(
                x => x.Name,
                Criterions.MatchElement(
                    Criterions.Object(
                        Criterions.Field <Name, string>(x => x.Firstname, Criterions.Equals("Vladimir")),
                        Criterions.Field <Name, string>(x => x.Surname, Criterions.Equals("Putin")))
                    ));

            var builder = new QueryBuilder(criterion);

            AssertFoundPutin(builder);
        }
        public void Complex_criterion_combination_query()
        {
            var byName = Criterions.Field <Person, string>(x => x.Name.Firstname, Criterions.Equals("Alexey"));
            var byAge  = Criterions.Field <Person, int>(x => x.Age, Criterions.Equals(36));

            var andCriterion = Criterions.And(byName, byAge);

            var ignoreCaseHobby = Criterions.IgnoreCase(Criterions.Any("corruption"));
            var byHobbies       = Criterions.Field <Person, string[]>(x => x.Hobbies, ignoreCaseHobby);
            var criterion       = Criterions.Or(andCriterion, byHobbies);

            var builder = new QueryBuilder(criterion);

            AssertFoundBoth(builder);
        }
        public HomepageModelResponse Handle(HomepageModelRequest message)
        {
            var notifications = _repository.Notifications;
            var now           = DateTime.UtcNow;
            var thirtyDaysAgo = now.AddDays(-30);
            var greaterThan   = Criterions.GreaterThanOrEqual(thirtyDaysAgo);
            var criterion     = Criterions.Field(nameof(Notification.CreatedAt), greaterThan);
            var builder       = new QueryBuilder(criterion);
            var last30Days    = notifications
                                .PerformQuery <Notification>(builder)
                                .ToList();

            //Sort in descending order
            last30Days.Sort((x, y) => y.CreatedAt.CompareTo(x.CreatedAt));

            var model = new HomepageModel(last30Days);

            return(new HomepageModelResponse(model));
        }