public async Task <Page <ProjectListItemView> > Handle(ProjectListQuery query, CancellationToken cancellationToken) { var sql = _context.Projects.AsNoTracking() .Select(project => new ProjectListItemView { Id = project.Id, Name = project.Name, Description = project.Description, IsPrivate = project.IsPrivate, }); return(new Page <ProjectListItemView> { Limit = query.Limit, Offset = query.Offset, Total = await sql.CountAsync(cancellationToken), Items = await sql.Skip(query.Offset).Take(query.Limit).ToArrayAsync(cancellationToken) }); }
public async Task <ActionResult> List() { var result = await _mediator.Send(ProjectListQuery.Create()); return(Ok(result)); }