示例#1
0
        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));
        }