private int CountExpectedVendas(GetVendasQuery request) { var query = _context.Venda.AsQueryable(); if (request.Ids?.Count > 0) { query = query.Where(e => request.Ids.Contains(e.IdVenda)); } if (request.DataInicio != null) { query = query.Where(e => e.DataVenda >= (DateTime)request.DataInicio); } if (request.DataFim != null) { query = query.Where(e => e.DataVenda <= (DateTime)request.DataFim); } var paginacao = request.Paginacao ?? new PaginacaoViewModel(PaginacaoConstants.PaginaDefault, PaginacaoConstants.ItensPorPaginaDefault); var resultado = query.Skip((paginacao.Pagina - 1) * paginacao.ItensPorPagina).Take(paginacao.ItensPorPagina).Count(); return(resultado); }
public async Task Success_Get_WithParams(GetVendasQuery query) { var result = await _queryHandler.Handle(query, CancellationToken.None); var countSeed = CountExpectedVendas(query); Assert.NotNull(result); Assert.Equal(countSeed, result.Itens.Count); }
public async Task <ActionResult <ConsultaPaginadaViewModel <VendaViewModel> > > GetAll([FromQuery] List <int> ids, [FromQuery] DateTime?dataInicio, [FromQuery] DateTime?dataFim, [FromQuery] int?pagina, [FromQuery] int?itensPorPagina) { var query = new GetVendasQuery() { Ids = ids, DataFim = dataFim, DataInicio = dataInicio }; if (pagina != null && itensPorPagina != null) { query.Paginacao = new PaginacaoViewModel((int)pagina, (int)itensPorPagina); } return(Ok(await Mediator.Send(query))); }