public DTODisponibilidadeSolucaoEducacionalPorUsuarioT ConsultarDisponibilidadeMatriculaPorUsuario( int pIdUsuario, int?pagina) { var retorno = new DTODisponibilidadeSolucaoEducacionalPorUsuarioT(); var usuario = new ManterUsuario().ObterUsuarioPorID(pIdUsuario); new ManterMatriculaOferta().ObterPorUsuario(pIdUsuario); var listaPermissaoSolucaoEducacional = new BMSolucaoEducacional().ObterListaDePermissoes(usuario.ID, 0); var idsSolucoesPermissoes = listaPermissaoSolucaoEducacional.Select(f => f.SolucaoEducacional.ID).ToList(); var filtro = new SolucaoEducacional(); var recuperarListaSolucaoEducacional = new ManterSolucaoEducacional().ObterPorFiltroPesquisa(filtro, true, idsSolucoesPermissoes); const int skip = 5; var paginaAtual = (pagina.HasValue && pagina.Value > 0) ? (pagina.Value - 1) : 0; retorno.PaginaAtual = (paginaAtual + 1); retorno.QtdeSolucoes = recuperarListaSolucaoEducacional.Count(); retorno.QtdePaginas = Convert.ToInt32((retorno.QtdeSolucoes / skip)); if ((retorno.QtdeSolucoes % skip) > 0) { retorno.QtdePaginas++; } foreach (var item in recuperarListaSolucaoEducacional.Skip((paginaAtual * skip)).Take(skip).ToList()) { retorno.DTODisponibilidadeSolucaoEducacional.Add( ConsultarDisponibilidadeMatriculaSolucaoEducacional(pIdUsuario, item.ID)); } return(retorno); }