public InformacoesIndicadoModel CarregaInformacoesIndicado(int indicadoID)
        {
            InformacoesIndicadoModel retorno = new InformacoesIndicadoModel();

            retorno.Indicado = dal.Carregar(indicadoID);

            retorno.TotalIndicacoes = dal.QtdeHistorias(indicadoID);
            retorno.Aprovadas       = dal.QtdeHistoriasAprovadas(indicadoID);
            retorno.Recusadas       = dal.QtdeHistoriasNaoAprovadas(indicadoID);
            retorno.Moderadas       = dal.QtdeHistoriasModeradas(indicadoID);

            HistoriaCategoriaService servHistoriaCategoria = new HistoriaCategoriaService();

            retorno.Qualidades = servHistoriaCategoria.Listar(indicadoID).ToList();

            CidadeParticipanteService servCidadeParticipante = new CidadeParticipanteService();

            retorno.CidadesParticipantes = servCidadeParticipante.ListarAtivas().ToList();
            //if (dal.EstaNaGaleria(indicadoID, historiaID))
            //    retorno.LinkGaleria = "http://google.com";

            return(retorno);
        }
        public RetornoModel <IndicadoModel> CarregarConfirmarIndicacao(string Codigo)
        {
            IndicadoModel        model   = new IndicadoModel();
            HistoriaService      sc      = new HistoriaService();
            HistoriaMidiaService scMidia = new HistoriaMidiaService();

            model.Codigo   = Codigo;
            model.Historia = sc.Carregar(Codigo); //buscando historia a partir do codigo do indicado OU RESPONSAVEL
            if (model.Historia == null)           // se a historia existe, monta o model
            {
                return(new RetornoModel <IndicadoModel> {
                    Mensagem = "Código inválido!", Sucesso = false
                });
            }
            model.Historia.Midias = scMidia.Listar(model.Historia.ID, true);
            model.Responsavel     = (Codigo == model.Historia.CodigoIndicadoResponsavel);
            if (model.Responsavel)
            {
                if ((model.Historia.IndicadoAprovacaoOriginal != enumAprovacao.aprovado) || (model.Historia.IndicadoAprovacaoResponsavel != enumAprovacao.pendente))
                {
                    string mensagem = "Não existe nenhuma pendência vinculada a este código.";
                    if (model.Historia.IndicadoAprovacaoResponsavel == enumAprovacao.aprovado)
                    {
                        mensagem = "Essa indicação já foi aprovada.";
                    }
                    else if (model.Historia.IndicadoAprovacaoResponsavel == enumAprovacao.naoAprovado)
                    {
                        mensagem = "Essa indicação já foi recusada.";
                    }
                    return(new RetornoModel <IndicadoModel> {
                        Mensagem = mensagem, Sucesso = false
                    });
                }
                model.Indicado           = dal.Carregar(model.Historia.IndicadoID.Value);
                model.Estrangeiro        = (model.Indicado.DocumentoTipoID != enumDocumentoTipoNome.cpf);
                model.Indicado.UsuarioID = 0;
            }
            else
            {
                if (model.Historia.IndicadoAprovacaoOriginal != enumAprovacao.pendente)
                {
                    string mensagem = "Não existe nenhuma pendência vinculada a este código.";
                    if (model.Historia.IndicadoAprovacaoOriginal == enumAprovacao.aprovado)
                    {
                        mensagem = "Essa indicação já foi aprovada.";
                    }
                    else if (model.Historia.IndicadoAprovacaoOriginal == enumAprovacao.naoAprovado)
                    {
                        mensagem = "Essa indicação já foi recusada.";
                    }
                    return(new RetornoModel <IndicadoModel> {
                        Mensagem = mensagem, Sucesso = false
                    });
                }
                model.Indicado       = new Indicado();
                model.Indicado.Nome  = model.Historia.IndicadoNome;
                model.Indicado.Email = model.Historia.IndicadoEmail;
            }
            model.Historia.CodigoIndicado            = null;
            model.Historia.CodigoIndicadoResponsavel = null;

            HistoriaCategoriaService categoriaService = new HistoriaCategoriaService();

            model.Categoria = categoriaService.Carregar(model.Historia.HistoriaCategoriaID);
            //buscando os estados
            EstadoService service = new EstadoService();

            model.Estados = service.Listar();

            ParentescoService parentescoService = new ParentescoService();

            model.Parentesco = parentescoService.Listar(true);

            model.IndicadoFotoInfo = CarregarFotoInfo(model.Indicado.FotoArquivoNome);
            if (model.IndicadoFotoInfo == null)
            {
                model.IndicadoFotoInfo = new UploadFotoModel();
            }

            return(new RetornoModel <IndicadoModel> {
                Retorno = model, Mensagem = "Código confirmado com sucesso!", Sucesso = true
            });
        }