Example #1
0
        private string ChangeTopPageSize(string pageSizeParameterValue, PageSize topPageSize)
        {
            var elements = ParsePageSizeExpression(pageSizeParameterValue);
            var elementInTopScopeIndex = elements.FindIndex(expression => expression.Scope == null);

            if (topPageSize != null)
            {
                var topPageSizeElement = new PaginationElementQueryStringValueExpression(null, topPageSize.Value);

                if (elementInTopScopeIndex != -1)
                {
                    elements[elementInTopScopeIndex] = topPageSizeElement;
                }
                else
                {
                    elements.Insert(0, topPageSizeElement);
                }
            }
            else
            {
                if (elementInTopScopeIndex != -1)
                {
                    elements.RemoveAt(elementInTopScopeIndex);
                }
            }

            var parameterValue = string.Join(',',
                                             elements.Select(expression => expression.Scope == null ? expression.Value.ToString() : $"{expression.Scope}:{expression.Value}"));

            return(parameterValue == string.Empty ? null : parameterValue);
        }
        protected PaginationQueryStringValueExpression ParsePagination()
        {
            var elements = new List <PaginationElementQueryStringValueExpression>();

            PaginationElementQueryStringValueExpression element = ParsePaginationElement();

            elements.Add(element);

            while (TokenStack.Any())
            {
                EatSingleCharacterToken(TokenKind.Comma);

                element = ParsePaginationElement();
                elements.Add(element);
            }

            return(new PaginationQueryStringValueExpression(elements));
        }