コード例 #1
0
 public async Task <IActionResult> GetBulksFilter([FromQuery] BulkFilterDto filter)
 {
     return(Ok(await _bulkService.GetBulksFilter(filter)));
 }
コード例 #2
0
        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));
        }