public async Task <IActionResult> Get(int page = 0, int pageSize = 10) { var query = new CoursesArchive(page, pageSize); var results = await _mediator.Send(query); return(Ok(results)); }
public async Task <PagedCollection <CourseArchiveItem> > Handle(CoursesArchive request, CancellationToken cancellationToken) { if (null == request) { throw new ArgumentNullException(nameof(request)); } await using var conn = new SqlConnection(_connectionStringProvider.ConnectionString); var results = await conn.QueryMultipleAsync(query, new { offset = request.Page *request.PageSize, pageSize = request.PageSize }); var items = (await results.ReadAsync()).Select(r => new CourseArchiveItem(r.Id, r.Title)); var totalCount = await results.ReadSingleAsync <int>(); return(new PagedCollection <CourseArchiveItem>(items, request.Page, request.PageSize, totalCount)); }