Пример #1
0
        public async Task <ConsultaPaginadaViewModel <TViewModel> > Paginar(IQueryable <TEntity> query, PaginacaoViewModel paginacao)
        {
            var totalItens = await query.CountAsync();

            var result = await query.Skip((paginacao.Pagina - 1) *paginacao.ItensPorPagina).Take(paginacao.ItensPorPagina).ToListAsync();

            var retorno = new ConsultaPaginadaViewModel <TViewModel>(paginacao.Pagina, paginacao.ItensPorPagina)
            {
                TotalItens = totalItens,
                Itens      = _mapper.Map <List <TViewModel> >(result)
            };

            return(retorno);
        }
Пример #2
0
        public async Task <ConsultaPaginadaViewModel <DiscoViewModel> > Handle(GetDiscosQuery request, CancellationToken cancellationToken)
        {
            var query = _context.Disco.AsQueryable();

            query = query.OrderBy(e => e.Nome);

            var totalItens = await query.CountAsync();

            if (request.Ids?.Count > 0)
            {
                query = query.Where(e => request.Ids.Contains(e.IdDisco));
            }

            if (request.IdGenerosMusicais?.Count > 0)
            {
                query = query.Where(e => request.IdGenerosMusicais.Contains(e.IdGeneroMusical));
            }

            if (!string.IsNullOrEmpty(request.Nome))
            {
                query = query.Where(e => e.Nome.ToLower().Contains(request.Nome.ToLower()));
            }

            if (!string.IsNullOrEmpty(request.NomeGeneroMusical))
            {
                query = query.Where(e => e.GeneroMusical.Nome.ToLower().Contains(request.NomeGeneroMusical.ToLower()));
            }

            var paginacao = request.Paginacao ?? new PaginacaoViewModel(PaginacaoConstants.PaginaDefault, PaginacaoConstants.ItensPorPaginaDefault);

            var resultado = await query.Skip((paginacao.Pagina - 1) *paginacao.ItensPorPagina).Take(paginacao.ItensPorPagina).ToListAsync();

            var resultadoMapeado = _mapper.Map <List <DiscoViewModel> >(resultado);

            var retorno = new ConsultaPaginadaViewModel <DiscoViewModel>(paginacao.Pagina, paginacao.ItensPorPagina)
            {
                TotalItens = totalItens,
                Itens      = resultadoMapeado
            };

            return(retorno);
        }
        public async Task <ConsultaPaginadaViewModel <VendaViewModel> > Handle(GetVendasQuery request, CancellationToken cancellationToken)
        {
            var query = _context.Venda.AsQueryable();

            query = query.OrderByDescending(e => e.DataVenda);

            var totalItens = await query.CountAsync();

            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 = await query.Skip((paginacao.Pagina - 1) *paginacao.ItensPorPagina).Take(paginacao.ItensPorPagina).ToListAsync();

            var resultadoMapeado = _mapper.Map <List <VendaViewModel> >(resultado);

            var retorno = new ConsultaPaginadaViewModel <VendaViewModel>(paginacao.Pagina, paginacao.ItensPorPagina)
            {
                TotalItens = totalItens,
                Itens      = resultadoMapeado
            };

            return(retorno);
        }