public async Task <IEnumerable <UserRespond> > Handle(GetPaginatedUserQuery request, CancellationToken cancellationToken) { if (request.CurrentPage < 1 || request.PageSize < 1 || typeof(UserRespond).GetProperty(request.SortBy) == null) { throw new InvalidArgumentException(); } var users = await _userService .GetPaginatedResultAsyncAsNoTracking(request.CurrentPage, request.PageSize, request.SortBy, request.IsAsc); return(_mapper.Map <List <UserRespond> >(users)); }
public async Task <IActionResult> GetPaginatedResult(int?currentPage, int?pageSize, string sortBy, bool?isAsc) { try { var query = new GetPaginatedUserQuery(currentPage, pageSize, sortBy, isAsc); var result = await _mediator.Send(query); return(Ok(result)); } catch (InvalidArgumentException) { return(BadRequest(ModelConstants.InvalidQuery)); } }