Exemplo n.º 1
0
        public ActionResult Confirmado(string codigo)
        {
            if (!String.IsNullOrWhiteSpace(codigo))
            {
                Simulado s = ListarSimuladoAbertoPorCodigo(codigo);
                if (s != null && s.FlagTemVaga && !s.CandidatoInscrito(Sessao.Candidato.CodCandidato))
                {
                    if (Sessao.Candidato.PerfilCompleto)
                    {
                        string numeroMascara = new HashidsNet.Hashids(Configuracoes.Recuperar("SIAC_SECRET") + s.Codigo, 6)
                                               .Encode(s.Ano, s.NumIdentificador, Sessao.Candidato.CodCandidato);

                        var candidato = new SimCandidato()
                        {
                            NumInscricao  = s.ObterNumInscricao(),
                            Candidato     = Sessao.Candidato,
                            DtInscricao   = DateTime.Now,
                            NumeroMascara = numeroMascara
                        };

                        s.SimCandidato.Add(candidato);

                        foreach (var prova in s.Provas)
                        {
                            prova.SimCandidatoProva.Add(new SimCandidatoProva()
                            {
                                SimCandidato = candidato,
                                SimProva     = prova
                            });
                        }

                        Repositorio.Commit();

                        string simuladoUrl = Url.Action("Inscricoes", "Candidato", new { codigo = s.Codigo }, Request.Url.Scheme);
                        EnviarEmail.Inscricao(Sessao.Candidato.Email, Sessao.Candidato.Nome, simuladoUrl, s.Titulo);

                        return(RedirectToAction("Inscricoes", "Candidato", new { codigo = s.Codigo }));
                    }
                    else
                    {
                        return(RedirectToAction("Perfil", "Candidato"));
                    }
                }
            }
            return(RedirectToAction("Index"));
        }