コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }