Beispiel #1
0
 public void AddFilter(string name, string value, Type type)
 {
     if (Filters == null)
     {
         Filters = new FilterCollectionExpression <TIn>(new List <Filter>());
     }
     Filters.Add(name, value, type);
 }
Beispiel #2
0
        public Criteria(string path, IQueryCollection query)
        {
            Path           = path;
            Paginate       = PaginateExpression.Extract(query);
            Slice          = SliceExpression.Extract(query);
            FullTextSearch = FullTextSearchExpression <TIn> .Extract(query);

            Sort = OrderByExpression <TIn> .Extract(query);

            Filters = FilterCollectionExpression <TIn> .Extract(query);

            Operators = OperatorCollectionExpression <TIn> .Extract(query);

            Embeds = EmbedCollectionExpression <TIn> .Extract(query);
        }
        public void FilterCollectionExpression_Filter_Empty()
        {
            //Arrange
            var values = new Dictionary <string, StringValues>
            {
                { "names", new StringValues("Alejandro") },
                { "lastName", new StringValues("Molines") }
            };
            var query = new QueryCollection(values);



            //Act
            var filterCollection = FilterCollectionExpression <UserMetaDataCriteria> .Extract(query);



            //Assert
            filterCollection.Should().BeNull();
        }
        public void FilterCollectionExpression_With_Multiple_Values_A​nd_Same_Names()
        {
            //Arrange
            var values = new Dictionary <string, StringValues>
            {
                { "id", new StringValues(new [] { "1", "2", "4" }) }
            };
            var query = new QueryCollection(values);



            //Act
            var filterCollection = FilterCollectionExpression <UserMetaDataCriteria> .Extract(query);

            var text = filterCollection.ToString();



            //Assert
            text.Should().Be("id=1&id=2&id=4");
            filterCollection.Filters.Should()
            .NotBeEmpty().And
            .HaveCount(3).And
            .ContainItemsAssignableTo <Filter>().And
            .SatisfyRespectively(
                first => {
                first.Name.Should().Be("id");
                first.Value.Should().Be("1");
                first.Type.Should().Be <int>();
            }, second => {
                second.Name.Should().Be("id");
                second.Value.Should().Be("2");
                second.Type.Should().Be <int>();
            }, third => {
                third.Name.Should().Be("id");
                third.Value.Should().Be("4");
                third.Type.Should().Be <int>();
            });
        }
        public void FilterCollectionExpression_With_Multiple_Values()
        {
            //Arrange
            var values = new Dictionary <string, StringValues>
            {
                { "name", new StringValues("Alejandro") },
                { "lastName", new StringValues("Molines") }
            };
            var query = new QueryCollection(values);



            //Act
            var filterCollection = FilterCollectionExpression <UserMetaDataCriteria> .Extract(query);

            var text = filterCollection.ToString();



            //Assert
            text.Should().Be("name=Alejandro&lastName=Molines");
            filterCollection.Filters.Should().HaveCount(2);
        }