Exemplo n.º 1
0
        private void Init()
        {
            var expression = new List <string>();

            if (_criteria.Filters != null && _criteria.Filters.Filters.Any())
            {
                expression.Add(_criteria.Filters.ToString());
            }
            if (_criteria.Sort != null)
            {
                expression.Add(_criteria.Sort.ToString());
            }
            if (_criteria.FullTextSearch != null)
            {
                expression.Add(_criteria.FullTextSearch.ToString());
            }
            _expression = $"{_criteria.Path}?{string.Join("&", expression)}";

            var totalPage = (int)Math.Ceiling((double)Total / _criteria.Paginate.Limit);

            _first = new PaginateExpression(1, _criteria.Paginate.Limit);
            _last  = new PaginateExpression(totalPage, _criteria.Paginate.Limit);
            if (_criteria.Paginate.Page > 1)
            {
                _prev = new PaginateExpression(_criteria.Paginate.Page - 1, _criteria.Paginate.Limit);
            }

            if (_criteria.Paginate.Page >= totalPage)
            {
                return;
            }
            _next = new PaginateExpression(_criteria.Paginate.Page + 1, _criteria.Paginate.Limit);
        }
Exemplo n.º 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 PaginateExpression_Page_1_With_Default_Limit()
        {
            //Arrange
            var values = new Dictionary <string, StringValues>
            {
                { "_page", new StringValues("7") }
            };
            var query = new QueryCollection(values);



            //Act
            var paginate = PaginateExpression.Extract(query);
            var text     = paginate.ToString();

            //Assert
            text.Should().Be("_page=7&_limit=10");
        }
        public void PaginateExpression_Page_Empty()
        {
            //Arrange
            var values = new Dictionary <string, StringValues>
            {
                { "_pages", new StringValues("7") }
            };
            var query = new QueryCollection(values);



            //Act
            var paginate = PaginateExpression.Extract(query);


            //Assert
            paginate.Should().BeNull();
        }