public async Task <IActionResult> GetBulksFilter([FromQuery] BulkFilterDto filter) { return(Ok(await _bulkService.GetBulksFilter(filter))); }
public async Task <ServiceResponseWithPagination <List <Bulk> > > GetBulkFilter(BulkFilterDto filter) { var queryable = _dBContext.Bulk.AsQueryable(); //Filter if (!string.IsNullOrWhiteSpace(filter.BulkName)) { queryable = queryable.Where(x => x.BulkName.Contains(filter.BulkName)); } if (!string.IsNullOrWhiteSpace(filter.BulkCode)) { queryable = queryable.Where(x => x.BulkCode.Contains(filter.BulkCode)); } //Ordering if (!string.IsNullOrWhiteSpace(filter.OrderingField)) { try { queryable = queryable.OrderBy($"{filter.OrderingField} {(filter.AscendingOrder ? "asc" : "desc")}"); } catch (System.Exception) { return(ResponseResultWithPagination.Failure <List <Bulk> >(string.Format("Could not order by field : {0}", filter.OrderingField))); } } var paginationResult = await _httpContext.HttpContext.InsertPaginationParametersInResponse(queryable, filter.RecordsPerPage, filter.Page); var dto = await queryable.Paginate(filter).ToListAsync(); return(ResponseResultWithPagination.Success(dto, paginationResult)); }