private void AddOrderByParameter(QueryReciever request) { if (!request.Query.OrderBy.Contains(':')) { AddError(request, ErrorMessage.Query.OrderParameterSeperator); return; } var orderQuery = request.Query.OrderBy.Split(":"); if (!orderQuery[0].Contains(OrderParameterDescriptor.Ascending, StringComparison.OrdinalIgnoreCase) && !orderQuery[0].Contains(OrderParameterDescriptor.Descending, StringComparison.OrdinalIgnoreCase)) { AddError(request, ErrorMessage.Query.OrderParameterDescriptor); return; } if (!_querySemantics.DefaultFields.Contains(orderQuery[0])) { AddError(request, ErrorMessage.Query.OrderParameterField); return; } request.OrderByParameter = new OrderByParameter(orderQuery); }
private void AddExpandMembers(QueryReciever request) { var expandMembers = new List <string>(); foreach (var member in request.Query.Expand.Split('.')) { if (_querySemantics.RelationalFields.Contains(member)) { expandMembers.Add(member); continue; } AddError(request, ErrorMessage.Query.ExpandParameterField); } request.ExpandMembers = expandMembers.ToArray(); }
public static PagedResponse <T> CreatePaginatedResponse <T>( IUriService uriService, QueryReciever request, ICollection <T> response, int?total) { var pagination = request.PaginationQuery; var nextPage = pagination.PageNumber >= 1 ? uriService.GetUri(request.RequestRoute, new PaginationQuery { PageNumber = pagination.PageNumber + 1, PageSize = pagination.PageSize }).ToString() : null; var previousPage = pagination.PageNumber - 1 >= 1 ? uriService.GetUri(request.RequestRoute, new PaginationQuery { PageNumber = pagination.PageNumber - 1, PageSize = pagination.PageSize }).ToString() : null; return(new PagedResponse <T> { Data = response, PageNumber = pagination.PageNumber >= 1 ? pagination.PageNumber : null, PageSize = pagination.PageSize > response.Count ? response.Count : pagination.PageSize >= 1 ? pagination.PageSize : null, NextPage = total > pagination.PageSize ? nextPage : null, PreviousPage = previousPage, Total = total, Errors = request.Errors }); }
private static void AddError(QueryReciever request, string errorMessage) { request.Errors ??= new List <string>(); request.Errors.Add(errorMessage); }