//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); }
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); } } }
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))); }
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); } }
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")); }
//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)); }
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); }
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); }
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")); }
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)); }
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++; } }
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); } } } }
//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); } }