public static IQueryable <T> GenerateQuery <T>(this IQueryable <T> query, JsonapiRequest request)
 {
     if (request != null)
     {
         query = query.GenerateFilterQuery <T>(request.Filters);
         query = query.GenerateSortQuery <T>(request.Sort);
         query = query.GeneratePagination <T>(request.Pagination);
     }
     return(query);
 }
        public static JsonapiRequest GetJsonApiRequest(IEnumerable <KeyValuePair <string, string> > parameters)
        {
            if (parameters.Any())
            {
                JsonapiRequest jsonAPIRequest = new JsonapiRequest();
                jsonAPIRequest.Sort       = ExtractSortExpressions(parameters);
                jsonAPIRequest.Filters    = ExtractFilters(parameters);
                jsonAPIRequest.Pagination = ExtractPagination(parameters);

                return(jsonAPIRequest);
            }
            return(null);
        }