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);
        }
Ejemplo n.º 3
0
        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)));
        }