public static string GetAll( PagingQueryParams paging = null, SortingQueryParams sorting = null, FilterQueryParams filtering = null) { var baseUrl = $"{BaseUrl}"; var queryParams = new Dictionary <string, string>(); if (paging != null) { queryParams.Add(nameof(PagingQueryParams.Page), $"{paging.Page}"); queryParams.Add(nameof(PagingQueryParams.PageSize), $"{paging.PageSize}"); } if (filtering != null) { queryParams.Add(nameof(SortingQueryParams.SortQueryExpression), $"{sorting.SortQueryExpression}"); } if (sorting != null) { queryParams.Add(nameof(FilterQueryParams.SearchTerm), $"{filtering.SearchTerm}"); } return(QueryHelpers.AddQueryString(baseUrl, queryParams)); }
public async Task <IActionResult> GetAll( [FromQuery] PagingQueryParams pagingParams, [FromQuery] SortingQueryParams sortingParams, [FromQuery] FilterQueryParams filteringParams, CancellationToken cancellationToken = default) { return(Ok(await Mediator.Send(new GetItemsQuery(pagingParams, sortingParams, filteringParams), cancellationToken))); }
/// <summary> /// Builds and retrieves Item sorting function /// </summary> /// <param name="sortBy">Describes sorting parameter name</param> /// <param name="direction">Describes sorting direction</param> /// <returns>Function which when executed returns sorted input</returns> internal Func <IQueryable <Item>, IOrderedQueryable <Item> > GetSortFn(SortingQueryParams parameters) { if (string.IsNullOrWhiteSpace(parameters.SortQueryExpression)) { return(null); } return(items => new Sorter <Item>(_logger).Sort(items, parameters.SortQueryExpression) as IOrderedQueryable <Item>); }
public GetItemsQuery(PagingQueryParams pagingParams, SortingQueryParams sortingParams, FilterQueryParams filteringParams) { PagingParams = pagingParams; SortingParams = sortingParams; FilteringParams = filteringParams; }