Esempio n. 1
0
        //Verificar a Prova e Questão, e validar a alternativa marcada com a correta no DB.
        public void SalvarQuestaoSE(int QuestaoID, int ProvaID, int AlternativaID)
        {
            int AlunoID = Convert.ToInt32(Session["IdUsr"]);
            //Tabela RespostasAlunos, provaID x, QuestãoID x, AlunoID x
            RespostasAluno Questao = RespostasAlunoDAO.BuscarProvaQuestaoAluno(QuestaoID, ProvaID, AlunoID);

            double notamax = ProvaDAO.BuscarValorNotamax(ProvaID, QuestaoID);

            foreach (Alternativa item2 in Questao.Questao.Alternativas)
            {
                if (item2.AlternativaId == AlternativaID)
                {
                    if (item2.correto == 1)
                    {
                        Questao.NotaAluno        = notamax;
                        Questao.SituacaoCorrecao = 1;
                    }
                    else
                    {
                        Questao.NotaAluno        = 0;
                        Questao.SituacaoCorrecao = 3;
                    }
                    break;
                }
            }
            Questao.DataHoraInicio = DateTime.Now;

            RespostasAlunoDAO.Editar(Questao);
        }
Esempio n. 2
0
        public void SalvarNotaManual(int QuestaoID, int ProvaID, int AlunoID, string Nota)
        {
            double nota      = Convert.ToDouble(Nota);
            Prova  provatemp = ProvaDAO.BuscarProvaId(ProvaID);

            provatemp.RespostasAlunos.Clear();

            RespostasAluno        questao;
            List <RespostasAluno> resultado = RespostasAlunoDAO.RespostasAlunoProvaId(ProvaID);

            //adiciono pois o resultado não traz correto da base de dados
            provatemp.RespostasAlunos = resultado;


            foreach (RespostasAluno item in resultado)
            {
                questao = new RespostasAluno();
                if (item.Aluno.AlunoId == AlunoID && item.Questao.QuestaoId == QuestaoID)
                {
                    questao = item;
                    questao.SituacaoCorrecao = 4;
                    questao.NotaAluno        = nota;
                    questao.Prova            = provatemp;
                    RespostasAlunoDAO.Editar(questao);
                }
            }
        }
Esempio n. 3
0
        public ActionResult CorrigirTodaProva(int id, int idProva)
        {
            int AlunoID = id;

            List <RespostasAluno> Resp = ProvaDAO.BuscarRespostasPorAluno(AlunoID, idProva);
            double NotaSomada          = 0;

            foreach (var item in Resp)
            {
                if (item.NotaAluno > 3 && item.NotaAluno <= 10)
                {
                    item.NotaAluno = (item.NotaAluno / 10);
                    NotaSomada     = NotaSomada + item.NotaAluno;
                }
                else if (item.NotaAluno > 10)
                {
                    item.NotaAluno = (item.NotaAluno / 100);
                    NotaSomada     = NotaSomada + item.NotaAluno;
                }
                else
                {
                    NotaSomada = NotaSomada + item.NotaAluno;
                }
                //NotaSomada = (NotaSomada + item.NotaAluno);
            }
            TempData["$NotaAluno$"] = NotaSomada.ToString("F");

            ViewBag.Marcadas = RespostasAlunoDAO.BuscarAltsMarcadas(idProva, AlunoID);;
            Prova prova = ProvaDAO.BuscarProvaId(idProva);

            prova.RespostasAlunos = Resp;


            return(View(OrdenarObjetosProva(prova)));
        }
Esempio n. 4
0
        public void GerenciarNotaAluno(int alunoId, int provaId)
        {
            Prova provatemp = ProvaDAO.BuscarProvaId(provaId);

            provatemp.RespostasAlunos.Clear();

            List <RespostasAluno> resultado = RespostasAlunoDAO.RespostasAlunoProvaId(provaId);

            //adiciono pois o resultado não traz correto da base de dados
            provatemp.RespostasAlunos = resultado;

            AlunoNota alunoNota = AlunoNotaDAO.BuscarAlunoNota(alunoId, provaId);
            double    notaTotal = 0;

            if (alunoNota == null)
            {
                alunoNota       = new AlunoNota();
                alunoNota.Aluno = AlunoDAO.BuscarAlunoId(alunoId);
                alunoNota.Prova = provatemp;
            }
            foreach (var item in BuscarRespostasPorAluno(alunoId, provaId))
            {
                notaTotal += item.NotaAluno;
            }
            alunoNota.NotaTotal = notaTotal;
            if (AlunoNotaDAO.BuscarAlunoNota(alunoNota.Aluno.AlunoId, alunoNota.Prova.ProvaId) == null)
            {
                AlunoNotaDAO.CadastrarAlunoNota(alunoNota);
            }
            else
            {
                AlunoNotaDAO.EditarAlunoNota(alunoNota);
            }
        }
Esempio n. 5
0
        public ActionResult SalvarCorrecaoProva(List <int> idquestao, List <int> idAluno, List <double> notas, List <int> idSituacao)
        {
            Aluno aluno = new Aluno();

            aluno = AlunoDAO.BuscarAlunoId(idAluno[0]);

            foreach (RespostasAluno obj in BuscarRespostasPorAluno(aluno.AlunoId, prova.ProvaId))
            {
                if (aluno.AlunoId == obj.Aluno.AlunoId)
                {
                    for (int i = 0; i < idquestao.Count; i++)
                    {
                        if (obj.Questao.QuestaoId == idquestao[i])
                        {
                            obj.SituacaoCorrecao = idSituacao[i];
                            obj.NotaAluno        = notas[i];
                            //altera item por item
                            RespostasAlunoDAO.Editar(obj);
                        }
                    }
                }
            }

            GerenciarNotaAluno(aluno.AlunoId, prova.ProvaId);

            return(RedirectToAction("OpcoesCorrecao", "ConsultarProvaPr"));
        }
Esempio n. 6
0
        //Passar para a prova a resposta discursiva do aluno...
        public ActionResult VisualizarProva(int?idAluno, int idProva)
        {
            int Pr      = 0;
            int AlunoID = Convert.ToInt32(Session["IdUsr"]);

            if (idAluno != null)
            {
                AlunoID = Convert.ToInt32(idAluno); Pr = 1;
            }

            //Verificar se o AlunoID ja realizou a prova...
            if (!RespostasAlunoDAO.VerificarSeProvaFeita(idProva, AlunoID))
            {
                TempData["$ProvaJaFeita$"] = "Só é possivel visualizar a prova depois de concluída.";
                return(RedirectToAction("ConsultarProvaAl", "ConsultarProvaAl"));
            }

            List <RespostasAluno> Resp = ProvaDAO.BuscarRespostasPorAluno(AlunoID, idProva);
            double NotaSomada          = 0;

            if (ProvaDAO.MostrarNota(idProva) || Pr == 1)
            {
                foreach (var item in Resp)
                {
                    if (item.NotaAluno > 3 && item.NotaAluno <= 10)
                    {
                        item.NotaAluno = (item.NotaAluno / 10);
                        NotaSomada     = NotaSomada + item.NotaAluno;
                    }
                    else if (item.NotaAluno > 10)
                    {
                        item.NotaAluno = (item.NotaAluno / 100);
                        NotaSomada     = NotaSomada + item.NotaAluno;
                    }
                    else
                    {
                        NotaSomada = NotaSomada + item.NotaAluno;
                    }
                    //NotaSomada = (NotaSomada + item.NotaAluno);
                }
                TempData["$NotaAluno$"] = NotaSomada.ToString("F");
            }
            else
            {
                TempData.Remove("$NotaAluno$");
                TempData["$ProvaJaFeita$"] = "Só é possivel visualizar a prova após a data e hora final.";
                return(RedirectToAction("ConsultarProvaAl", "ConsultarProvaAl"));
            }

            ViewBag.Marcadas = RespostasAlunoDAO.BuscarAltsMarcadas(idProva, AlunoID);;
            Prova prova = ProvaDAO.BuscarProvaId(idProva);

            prova.RespostasAlunos = Resp;
            return(View(prova));
        }
Esempio n. 7
0
        public void SalvarQuestaoDS(int QuestaoID, int ProvaID, string Resposta)
        {
            int            AlunoID = Convert.ToInt32(Session["IdUsr"]);
            RespostasAluno Questao = RespostasAlunoDAO.BuscarProvaQuestaoAluno(QuestaoID, ProvaID, AlunoID);

            Questao.RespostaDiscursiva = Resposta;
            Questao.SituacaoCorrecao   = 0;
            Questao.DataHoraInicio     = DateTime.Now;

            RespostasAlunoDAO.Editar(Questao);
        }
Esempio n. 8
0
        private static List <RespostasAluno> BuscarRespostasPorAluno(int idAluno, int idProva)
        {
            List <RespostasAluno> result = new List <RespostasAluno>();

            foreach (RespostasAluno item in RespostasAlunoDAO.BuscarRespostasPorProvaId(idProva))
            {
                if (item.Aluno.AlunoId == idAluno)
                {
                    result.Add(item);
                }
            }
            return(result);
        }
Esempio n. 9
0
        public ActionResult SolicitarRevisao(int ProvaID)
        {
            int AlunoID = Convert.ToInt32(Session["IdUsr"]);
            var count   = 0;
            List <RespostasAluno> resps = RespostasAlunoDAO.SolicitarRevisaoProva(ProvaID, AlunoID);

            foreach (var item in resps)
            {
                item.SituacaoCorrecao = 5;
                RespostasAlunoDAO.Editar(resps[count]);
                count++;
            }
            return(RedirectToAction("ConsultarProvaAl", "ConsultarProvaAl"));
        }
Esempio n. 10
0
        public ActionResult RealizarProva(int provaID)
        {
            //Verificar se o AlunoID ja realizou a prova...
            int AlunoID = Convert.ToInt32(Session["IdUsr"]);

            if (RespostasAlunoDAO.VerificarSeProvaFeita(provaID, AlunoID))
            {
                TempData["$ProvaJaFeita$"] = "Você já realizou essa prova.";
                return(RedirectToAction("ConsultarProvaAl", "ConsultarProvaAl"));
            }

            //Se não realizou, enviar para prova.
            TempData.Remove("$ProvaJaFeita$");
            Prova prova = ProvaDAO.BuscarProvaId(provaID);

            return(View(prova));
        }
Esempio n. 11
0
        public void SalvarTodasAlternativas(int ProvaID, List <int> AlternativasID, List <int> QuestoesID)
        {
            var count   = 0;
            int AlunoID = Convert.ToInt32(Session["IdUsr"]);
            List <RespostasAluno> Respostas = new List <RespostasAluno>();

            Respostas = RespostasAlunoDAO.BuscarRespostasAluno(ProvaID, AlunoID);
            foreach (var item in QuestoesID)
            {
                foreach (var item2 in Respostas)
                {
                    if (item2.Questao.QuestaoId == item)
                    {
                        Alternativa alt = AlternativaDAO.BuscarAlternativaId(AlternativasID[count]);
                        item2.Alternativas.Add(alt);
                        RespostasAlunoDAO.Editar(item2);
                        break;
                    }
                }
                count++;
            }
        }
Esempio n. 12
0
        public static void ValidarCorrecoesDiscursivas()
        {
            List <Prova> provas = ProvaDAO.BuscarTodasProvas();

            foreach (var item in provas)
            {
                List <RespostasAluno> respostas = RespostasAlunoDAO.BuscarRespostasPorProvaId(item.ProvaId);
                respostas = respostas.Where(x => x.RespostaDiscursiva != null).ToList();

                foreach (var item2 in respostas)
                {
                    if (item2.SituacaoCorrecao == 0 && item2.NotaAluno != 0)
                    {
                        var incorreto = item.ConfigPln.IncorretoFim;
                        var parcial   = item.ConfigPln.RevisarFim;
                        var notaMAX   = ProvaDAO.BuscarValorNotamax(item.ProvaId, item2.Questao.QuestaoId);

                        if (item2.NotaAluno <= incorreto)
                        {
                            item2.SituacaoCorrecao = 3;
                            item2.NotaAluno        = 0;
                        }
                        else if (item2.NotaAluno <= parcial)
                        {
                            item2.SituacaoCorrecao = 2;
                            item2.NotaAluno        = 0;
                        }
                        else
                        {
                            item2.SituacaoCorrecao = 1;
                            item2.NotaAluno        = notaMAX;
                        }

                        RespostasAlunoDAO.Editar(item2);
                    }
                }
            }
        }
Esempio n. 13
0
        //Variavel "Parcial" significa se essa questão aceita nota parcial ou total.
        public void SalvarQuestaoMEVF(int QuestaoID, int ProvaID, List <int> AlternativaID, int?Parcial)
        {
            List <int>     corretos = new List <int>();
            var            MarcCor  = 0;
            var            MarcInc  = 0;
            double         Total    = 0;
            int            AlunoID  = Convert.ToInt32(Session["IdUsr"]);
            RespostasAluno Questao  = RespostasAlunoDAO.BuscarProvaQuestaoAluno(QuestaoID, ProvaID, AlunoID);

            //Se o aluno desmarcar todas as alternativas, o valor é automaticamente 0...
            if (AlternativaID == null)
            {
                Questao.SituacaoCorrecao = 3;
                Questao.NotaAluno        = 0;
                Questao.DataHoraInicio   = DateTime.Now;

                RespostasAlunoDAO.Editar(Questao);
            }
            else
            {
                //if (Parcial == 1) {} else {}  --  Função separada para ativar e desativar o Salvar nota Parcial ou Total.
                //Pegar todas as AlternativasID dessa questão em especifica...
                List <int> AltersQuestao = new List <int>();
                foreach (Alternativa AltsQuest in Questao.Questao.Alternativas)
                {
                    AltersQuestao.Add(AltsQuest.AlternativaId);
                }

                //Inclui na lista "AltsDtQuest" as "AlternativaID" que pertencem a essa questão...
                List <int> AltsDtQuest = new List <int>();
                foreach (var SelAlts in AlternativaID)
                {
                    if (AltersQuestao.Contains(SelAlts))
                    {
                        AltsDtQuest.Add(SelAlts);
                    }
                }

                //Pega as AlternativasID dessa questão, onde as alternativas são "Corretas"...
                foreach (Alternativa item in Questao.Questao.Alternativas)
                {
                    if (item.correto == 1)
                    {
                        corretos.Add(item.AlternativaId);
                    }
                }
                double notamax    = ProvaDAO.BuscarValorNotamax(ProvaID, QuestaoID);
                double notaDiv    = (notamax / AltersQuestao.Count);
                double notaDivCor = (notamax / corretos.Count);

                //Separa quantas alternativas marcadas estão corretas e incorretas...
                foreach (int item2 in AltsDtQuest)
                {
                    if (corretos.Contains(item2))
                    {
                        MarcCor++;
                    }
                    else
                    {
                        MarcInc++;
                    }
                }

                //Atribui o valor total da nota do Aluno com base nas alternativas marcadas...
                Total = (notaDivCor * MarcCor);
                Total = (Total - (notaDiv * MarcInc));
                if (Total < 0)
                {
                    Total = 0;
                }

                //Define qual é o status da questão, correto, parcialmente correto ou incorreto...
                if (MarcCor > 0)
                {
                    if (Total == notamax)
                    {
                        Questao.SituacaoCorrecao = 1;
                    }
                    else
                    {
                        Questao.SituacaoCorrecao = 2;
                    }
                }
                else
                {
                    Questao.SituacaoCorrecao = 3;
                }

                Questao.NotaAluno      = Math.Round(Total, 2);
                Questao.DataHoraInicio = DateTime.Now;

                RespostasAlunoDAO.Editar(Questao);
            }
        }