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); }
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); }