public JsonResult GravarAlternativa(string texto, bool certa) { var alternativas = (List <AlternativaViewModel>)TempData.Peek("Alternativas") ?? new List <AlternativaViewModel>(); var alternativa = new AlternativaViewModel() { Texto = texto, Certa = certa }; alternativas.Add(alternativa); var newAlternativa = new AlternativaViewModel() { Texto = null, Certa = false }; var html = BaseControllerMethods.RenderPartialViewToString(this, "_alternativaCreate", newAlternativa); TempData["Alternativas"] = alternativas; return(Json(new { html = html }, JsonRequestBehavior.AllowGet)); }
public ActionResult FazerProva(ProvaViewModel prova) { var alternativas = (Dictionary <string, string>)TempData.Peek("Respostas") ?? new Dictionary <string, string>(); var quantCertas = 0; var alternativasE = new List <AlternativaViewModel>(); if (alternativas.Count > 0) { foreach (var alter in alternativas) { var alternativa = _alternativaAppService.ObterPorId(Guid.Parse(alter.Value), true); if (alternativa.Certa) { quantCertas++; } else { alternativasE.Add(alternativa); } } SmtpClient objSmtp = new SmtpClient { Host = "smtp.milleniumformaturas.com.br", Port = 587, EnableSsl = false, Credentials = new NetworkCredential("*****@*****.**", "s9m8t4M$$") }; var email = (string)TempData.Peek("EmailCandidato"); MailAddress from = new MailAddress("*****@*****.**"); List <MailAddress> to = new List <MailAddress>(); if (!string.IsNullOrEmpty(email)) { to.Add(new MailAddress(email)); } var vaga = _vagaAppService.ObterPorId(prova.ProvaId, true); var pfull = _provaAppService.ObterProva(prova.ProvaId.ToString()); var subject = "Resultado da prova para " + vaga.NomeVaga + ", vaga nª " + vaga.NumVaga + ""; var body = "<label>Olá " + email + ", aqui está o resultado da sua prova: </label> "; body += "<br>"; body += "<br>"; if (quantCertas >= ((60 * pfull.Perguntas.Count) / 100)) { body += vaga.TextoAprovacao; } else { body += vaga.TextoReprovacao; } body += "<br/>"; body += "<br/>"; body += "você acertou " + quantCertas + " de " + pfull.Perguntas.Count + " questões."; var pE = new List <PerguntaViewModel>(); foreach (var p in pfull.Perguntas) { foreach (var alt in p.Alternativas) { if (alternativasE.Any(x => x.AlternativaId == alt.AlternativaId)) { pE.Add(p); } } } if (pE.Count > 0) { body += "<br/>"; body += "Estas são as perguntas que você errou: "; body += "<br/>"; foreach (var pergunta in pE) { body += "<br>"; body += pergunta.Texto; } } BaseControllerMethods.SendEmail(objSmtp, from, to, body, subject, null, null); } else { return(RedirectToAction("Error", "Home", new { mensagem = "não foi possível identificar suas alternativas escolhidas, por favor tente fazer a prova novamente" })); } ViewBag.Mensagem = "sua prova foi realizada com sucesso!"; return(View(prova)); }