public async Task <ClassePaginacao <TEntity> > ObterListaPaginada(DadosPaginacao <TEntity> dadosPaginacao) { IQueryable <TEntity> query = ObterConsultaListaPaginada(dadosPaginacao.DataPaginacao); var total = query.Count(); var list = await query .OrderByAscDesc(dadosPaginacao.Ordenacao, dadosPaginacao.Direcao) .Skip((dadosPaginacao.Pagina - 1) * dadosPaginacao.QuantidadeRegistrosPagina) .Take(dadosPaginacao.QuantidadeRegistrosPagina).ToListAsync(); var paginada = new ClassePaginacao <TEntity>(list); paginada.TotalRegistros = total; return(paginada); }
public async Task <ClassePaginacao <TEntity2> > ObterListaPaginadaViewModel <TEntity1, TEntity2>( IBaseService <TEntity1> baseService, Func <TEntity1, TEntity2> conversao, PaginacaoViewModel paginacaoViewModel) where TEntity2 : class where TEntity1 : EntityBase { var dadosPaginacao = new DadosPaginacao <TEntity1>(); MetodosComunsApi.MetodosComuns.CopyT1T2DiferentClass(paginacaoViewModel, dadosPaginacao.DataPaginacao); MetodosComunsApi.MetodosComuns.CopyT1T2DiferentClass(paginacaoViewModel, dadosPaginacao); var usuPag = (await baseService.ObterListaPaginada(dadosPaginacao)); var ListAdd = usuPag.Lista.Select(x => conversao(x)); var ListRet = new ClassePaginacao <TEntity2>(ListAdd); ListRet.TotalRegistros = usuPag.TotalRegistros; return(ListRet); }