Exemplo n.º 1
0
            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));
            }
Exemplo n.º 2
0
 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)));
 }
Exemplo n.º 3
0
        /// <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>);
        }
Exemplo n.º 4
0
 public GetItemsQuery(PagingQueryParams pagingParams, SortingQueryParams sortingParams, FilterQueryParams filteringParams)
 {
     PagingParams    = pagingParams;
     SortingParams   = sortingParams;
     FilteringParams = filteringParams;
 }