public ActionResult Index(ProvaViewModel model) { if (ModelState.IsValid) { Prova prova = new Prova(); prova.Nome = model.Nome; prova.QtdQuestoes = model.QtdQuestoes; prova.ProfessorID = int.Parse(User.Identity.Name); prova.DataCriada = DateTime.Now.ToString(); prova.CodigoProva = "TEMP"; db.Prova.Add(prova); db.SaveChanges(); String codigoGerado = RandomString(3) + prova.ProvaID.ToString() + RandomString(3); prova.CodigoProva = codigoGerado; UpdateModel(prova); db.SaveChanges(); return(RedirectToAction("Index")); } return(View()); }
public ActionResult Index() { int professorId = int.Parse(User.Identity.Name); var prova = db.Prova.Where(p => p.ProfessorID == professorId); ProvaViewModel model = new ProvaViewModel(); model.listaProvas = prova.ToList(); return(View(model)); }
public ActionResult CriarProva(ProvaViewModel prova) { prova.DataHoraTermino = prova.DataHoraInicio.AddHours(prova.TempoProva.Hours); if (ModelState.IsValid) { _provaAppService.Adicionar(prova); return(RedirectToAction("CriarProva", "Admin", new { mensagem = "A prova foi criada com sucesso" })); } else { return(View(prova)); } }
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)); }
public void Atualizar(ProvaViewModel obj) { var prova = Mapper.Map <ProvaViewModel, Prova>(obj); _provaRepository.Atualizar(prova); }