示例#1
0
        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());
        }
示例#2
0
        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);
        }