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)); }