private void GerarDadosRespondentes(DTORelatorioQuestionarioRespondente resultadoRespondente = null)
        {
            resultadoRespondente = resultadoRespondente ??
                                   (Cache["dsRelatorioRespondente"] as DTORelatorioQuestionarioRespondente);

            if (resultadoRespondente == null)
            {
                throw new AcademicoException("Relatório respondente não encontrado para exibição. Tente novamente");
            }

            // Dados padrões da consulta.
            var enunciados = resultadoRespondente.Enunciados.OrderBy(x => x.Id).ToList();
            var questoes   = resultadoRespondente.Questoes.OrderBy(x => x.IdEnunciado).ThenBy(x => x.Id).ToList();

            // As respostas não recebem as respostas diretamente. Elas recebem DTOs com as respostas.
            var dtoRespostas = RelatorioQuestionario.ConverterDtoRespostas(
                ParticipacoesPaginaAtual(resultadoRespondente.Consulta),
                questoes);

            rptEnunciados.DataSource = enunciados;
            rptQuestoes.DataSource   = questoes;
            rptRespostas.DataSource  = dtoRespostas;


            // Glory Bind.
            rptEnunciados.DataBind();
            rptQuestoes.DataBind();
            rptRespostas.DataBind();
        }
        private decimal ObterQuanidadePaginas(DTORelatorioQuestionarioRespondente resultadoRespondente)
        {
            var qntPaginas = decimal.Divide(resultadoRespondente.TotalRespostas, MaxPerPage);

            // Adiciona uma página para os resultados residuais caso a divisão possua decimais.
            if (qntPaginas - ((int)qntPaginas) > 0)
            {
                qntPaginas = ((int)qntPaginas) + 1;
            }

            return(qntPaginas);
        }