public VizualizarIndicadoModel VisualizarIndicado(int id, bool mostraTodos)
        {
            VizualizarIndicadoModel model = new VizualizarIndicadoModel();

            model.Infos = CarregaInformacoesIndicado(id);
            HistoriaService service = new HistoriaService();

            model.Historias = service.ListarHistoriasComMidias(id, mostraTodos);

            return(model);
        }
        public ReportIndicadoHistoriasModel ExportarIndicadoHistorias(int id)
        {
            ReportIndicadoHistoriasModel retorno = null;

            //Carrega os dados do Indicado e hstorias
            VizualizarIndicadoModel model = new VizualizarIndicadoModel();

            model.Infos = CarregaInformacoesIndicado(id);
            HistoriaService service = new HistoriaService();

            model.Historias = service.ListarHistoriasComMidias(id, true);

            //converte os dados do indicado para a model do report
            retorno             = new ReportIndicadoHistoriasModel();
            retorno.rptIndicado = new List <ReportIndicadoHistoriasModel.ReportIndicado>();
            retorno.rptIndicado.Add(new ReportIndicadoHistoriasModel.ReportIndicado()
            {
                ID                    = model.Infos.Indicado.ID,
                Nome                  = model.Infos.Indicado.Nome,
                CidadeUF              = model.Infos.Indicado.Cidade.Nome + " - " + model.Infos.Indicado.Estado.UF,
                DataCadastro          = model.Infos.Indicado.DataCadastro,
                DataModificacao       = model.Infos.Indicado.DataModificacao,
                DataNascimento        = model.Infos.Indicado.DataNascimento,
                Email                 = model.Infos.Indicado.Email,
                ModificadoPor         = model.Infos.Indicado.AlteracaoOrigem.Description(),
                ParticiparEm          = model.Infos.Indicado.CidadeParticipante.Cidade.Nome + " - " + model.Infos.Indicado.CidadeParticipante.Cidade.Estado.UF,
                qtdHistoriasAprovadas = model.Infos.Aprovadas,
                qtdHistoriasModeradas = model.Infos.Moderadas,
                qtdHistoriasRecusadas = model.Infos.Recusadas,
                qtdIndicacoes         = model.Infos.TotalIndicacoes
            });

            retorno.rptIndicadoQualidade = new List <ReportIndicadoHistoriasModel.ReportIndicadoQualidade>();
            foreach (var item in model.Infos.Qualidades)
            {
                retorno.rptIndicadoQualidade.Add(new ReportIndicadoHistoriasModel.ReportIndicadoQualidade()
                {
                    QualidadeID   = item.ID,
                    QualidadeNome = item.Nome,
                    IndicadoID    = model.Infos.Indicado.ID
                });
            }

            retorno.rptIndicadoHistoria = new List <ReportIndicadoHistoriasModel.reportIndicadoHistoria>();
            foreach (var item in model.Historias)
            {
                retorno.rptIndicadoHistoria.Add(new ReportIndicadoHistoriasModel.reportIndicadoHistoria()
                {
                    HistoriaID      = item.Historia.ID,
                    Categoria       = item.Historia.HistoriaCategoria.Nome,
                    IndicadorNome   = item.Historia.IndicadorNome,
                    NotaHistoria    = string.Format("{0:0.00}", item.Historia.Nota),
                    StatusIndicado  = item.Historia.IndicadoAprovacao.Description(),
                    StatusModeracao = (item.Historia.IndicadoAprovacao == enumAprovacao.aprovado ||
                                       item.Historia.IndicadoAprovacao == enumAprovacao.aprovadoComRessalva
                                          ? (item.Historia.ModeracaoEncerrada ? "Encerrada" : "Em Andamento")
                                          : "Não Iniciada"),
                    StatusTriagem  = item.Historia.TriagemAprovacao.Description(),
                    TextoHistoria  = item.Historia.Texto,
                    TituloHistoria = item.Historia.Titulo,
                    IndicadoID     = model.Infos.Indicado.ID
                });
            }


            return(retorno);
        }