Exemplo n.º 1
0
        public PagedResponse <UseCaseLoggerDto> Execute(UseCaseLoggerSearch search)
        {
            var query = _context.UseCaseLoggers.AsQueryable();

            if (search.UserId != null)
            {
                query = query.Where(ucl => ucl.UserId == search.UserId);
            }
            if (search.UseCaseDateBefore != null)
            {
                query = query.Where(ucl => ucl.UseCaseDatetime <= search.UseCaseDateBefore);
            }
            if (search.UseCaseDateAfter != null)
            {
                query = query.Where(ucl => ucl.UseCaseDatetime >= search.UseCaseDateAfter);
            }

            var currentPage = search.Page;
            var perPage     = search.PerPage;

            var skip = perPage * (currentPage - 1);

            return(new PagedResponse <UseCaseLoggerDto>
            {
                CurrentPage = currentPage,
                ItemsPerPage = perPage,
                TotalCount = query.Count(),
                Items = query.Skip(skip).Take(perPage).Select(x => new UseCaseLoggerDto
                {
                    Id = x.Id,
                    UseCaseDatetime = x.UseCaseDatetime,
                    UserId = x.UserId,
                    UseCaseName = x.UseCaseName,
                    Data = x.Data
                })
            });
        }
Exemplo n.º 2
0
 public IActionResult Get([FromServices] IGetUseCaseLogger query, [FromQuery] UseCaseLoggerSearch search)
 {
     return(Ok(_executor.ExecuteQuery(query, search)));
 }