public async Task <PageResultDto <DriverDto> > GetAllPagingAsync(GetDriverPagingRequestDto request) { var query = _context.Drivers.Where(x => x.IsDeleted == false).AsQueryable(); // Filter if (!string.IsNullOrEmpty(request.Name)) { query = query.Where(x => x.Name.Contains(request.Name)); } if (!string.IsNullOrEmpty(request.PhoneNumber)) { query = query.Where(x => x.PhoneNumber.Contains(request.PhoneNumber)); } if (request.Status >= 0) { query = query.Where(x => (int)x.Status == request.Status); } // Paging var totalRow = await query.CountAsync(); var data = await query.Skip((request.PageIndex - 1) *request.PageSize) .Take(request.PageSize) .Select(x => new DriverDto() { Id = x.Id, Name = x.Name, Address = x.Address, Dob = x.Dob, Email = x.Email, PhoneNumber = x.PhoneNumber, Status = (int)x.Status }).ToListAsync(); var pageResult = new PageResultDto <DriverDto>() { StatusCode = ResponseCode.Success, TotalRecord = totalRow, Message = "Thực hiện thành công", Items = data }; return(pageResult); }
public async Task <PageResultDto <DriverDto> > GetAllPaging([FromQuery] GetDriverPagingRequestDto request) { var result = await _driverService.GetAllPagingAsync(request); return(result); }