Пример #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);
        }
Пример #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);
                }
            }
        }
Пример #3
0
 public static bool Editar(RespostasAluno resp)
 {
     //ctx.Entry(resp).Property("Prova_ProvaId").IsModified = false;
     ctx.Entry(resp).State = System.Data.Entity.EntityState.Modified;
     ctx.SaveChanges();
     return(true);
 }
Пример #4
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);
        }
Пример #5
0
        public static RespostasAluno BuscarProvaQuestaoAluno(int QuestaoID, int ProvaID, int AlunoID)
        {
            Prova          prova  = ProvaDAO.BuscarProvaId(ProvaID);
            RespostasAluno result = new RespostasAluno();

            foreach (RespostasAluno item in prova.RespostasAlunos)
            {
                if (item.Aluno.AlunoId == AlunoID && item.Questao.QuestaoId == QuestaoID)
                {
                    result = RespostasAlunoId(item.RespostasAlunoId);
                }
            }

            return(result);
        }
        private void GerarGabaritoAluno()
        {
            Turma                 turma = TurmaDAO.BuscarTurmaId(provaFixa.Disciplina.DisciplinaId);
            RespostasAluno        respostaAluno;
            List <RespostasAluno> listaRespostaAluno = new List <RespostasAluno>();
            List <Aluno>          alunos             = turma.Alunos;

            foreach (Aluno aluno in alunos)
            {
                foreach (var item in provaFixa.NotasQuestoes)
                {
                    respostaAluno                = new RespostasAluno();
                    respostaAluno.Aluno          = aluno;
                    respostaAluno.Questao        = item.Questao;
                    respostaAluno.Alternativas   = new List <Alternativa>();
                    respostaAluno.DataHoraInicio = null;
                    respostaAluno.DataHoraFim    = null;
                    respostaAluno.Prova          = provaFixa;
                    listaRespostaAluno.Add(respostaAluno);
                }
            }
            provaFixa.RespostasAlunos.AddRange(listaRespostaAluno);
        }
Пример #7
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);
            }
        }
Пример #8
0
 /*o objeto deve vir validado e com todos os campos obrigatórios preenchidos*/
 public static bool CadastrarResposta(RespostasAluno resp)
 {
     ctx.RespostasAlunos.Add(resp);
     ctx.SaveChanges();
     return(true);
 }