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 ConsultarProva(DateTime DataInicio, DateTime DataFim, int Curso, string Disciplina, string NomeTurma) { List <Prova> provas = new List <Prova>(); Disciplina disc = new Disciplina(); if (!Disciplina.IsEmpty() || !Disciplina.Equals(null)) { } disc = DisciplinaDAO.BuscarPorNome(Disciplina); if (Disciplina.Equals("Selecionar")) { provas = ProvaDAO.BuscarProvasPesquisa(Convert.ToInt32(Session["IdUsr"]), DataInicio, DataFim, Curso); } else if (Curso == 0) { provas = ProvaDAO.BuscarProvasPesquisa(Convert.ToInt32(Session["IdUsr"]), DataInicio, DataFim); } if ((!Disciplina.Equals("Selecionar")) && NomeTurma.Equals("Selecionar")) { provas = ProvaDAO.BuscarProvasPesquisa(Convert.ToInt32(Session["IdUsr"]), DataInicio, DataFim, Curso, disc.DisciplinaId); } if (!NomeTurma.Equals("Selecionar")) { provas = ProvaDAO.BuscarProvasPesquisa(Convert.ToInt32(Session["IdUsr"]), DataInicio, DataFim, Curso, disc.DisciplinaId, NomeTurma); } TempData["provas"] = provas; return(RedirectToAction("ConsultarProvaPr", "ConsultarProvaPr")); }
//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 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); } }
//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 JsonResult Simular() { using (IConnection Conexao = new Connection()) { IDAO <Aluno> alunoDAO = new AlunoDAO(Conexao); IDAO <Materia> materiaDAO = new MateriaDAO(Conexao); IDAO <Prova> provaDAO = new ProvaDAO(Conexao); Collection <Aluno> listaAluno = new Collection <Aluno>(); listaAluno = alunoDAO.Listar(); Collection <Materia> listaMateria = new Collection <Materia>(); listaMateria = materiaDAO.Listar(); foreach (Aluno aluno in listaAluno) { foreach (Materia materia in listaMateria) { Prova prova = new Prova(); prova.Materia = materia; prova.Aluno = aluno; Random random = new Random(); prova.NotaProva1 = Math.Round((random.NextDouble() * (10 - 4) + 4), 1); prova.NotaProva2 = Math.Round((random.NextDouble() * (10 - 4) + 4), 1); prova.NotaProva3 = Math.Round((random.NextDouble() * (10 - 4) + 4), 1); double p1 = prova.Materia.PesoProva1 * prova.NotaProva1; double p2 = prova.Materia.PesoProva2 * prova.NotaProva2; double p3 = prova.Materia.PesoProva3 * prova.NotaProva3; double somaPeso = prova.Materia.PesoProva1 + prova.Materia.PesoProva2 + prova.Materia.PesoProva3; double mediaPonderada = (p1 + p2 + p3) / (somaPeso); prova.MediaProva = Math.Round(mediaPonderada, 1); provaDAO.inserir(prova); if (prova.MediaProva >= 6 || prova.MediaProva <= 4) { AlunoDAO alunoAlterar = new AlunoDAO(Conexao); alunoAlterar.alterarStatus(aluno); } } } } return(Json("Ok")); }
public ActionResult CorrigirProvaAlunoEspecifico(int id, int idProva) { Prova prova = ProvaDAO.BuscarProvaId(idProva); List <RespostasAluno> respos = new List <RespostasAluno>(); ViewBag.Prova = OrdenarObjetosProva(prova); foreach (var item in OrdenarObjetosProva(prova).RespostasAlunos) { if (item.Aluno.AlunoId == id) { respos.Add(item); } } ViewBag.RespostasAlunoCorrecao = respos; return(View(OrdenarObjetosProva(prova))); }
// GET: ConsultarProvaPr public ActionResult ConsultarProvaPr() { ConfiguracoesController.ValidarCorrecoesDiscursivas(); limpar(); ViewBag.Cursos = ViewBag.Cursos = CursoDAO.listarCursosPorProfessor(Convert.ToInt32(Session["IdUsr"])); if (TempData["provas"] == null) { ViewBag.Provas = ProvaDAO.BuscarPorProfessor(Convert.ToInt32(Session["IdUsr"])); } else { ViewBag.Provas = TempData["provas"]; } return(View(new Prova())); }
public ActionResult ConsultarProva(DateTime?DataIni, DateTime?DataFim, int Curso, string Disciplina, int Turma, int Status) { List <Prova> provas = new List <Prova>(); if (Curso == 0 || Disciplina == "0") { provas = ProvaDAO.BuscarProvasAlunoGeral(Status, DataIni, DataFim); } else { var disciplinaId = DisciplinaDAO.BuscarPorNome(Disciplina).DisciplinaId; provas = ProvaDAO.BuscarProvasAluno(Status, DataIni, DataFim, disciplinaId, Turma); } TempData["provas"] = provas; 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 ActionResult CadastrarQuestoesProva(Prova prova) { List <DateTime> listaData = new List <DateTime>(); listaData = ajustarHoraFim(prova.DataProvaInicio, prova.HoraInicio, prova.DataProvaFim, prova.HoraFim); if (listaData != null) { prova.HoraInicio = listaData[0]; prova.HoraFim = listaData[1]; } Disciplina disc = DisciplinaDAO.BuscarPorNome(prova.NomeDisciplina); List <RespostasAluno> respostaAluno = new List <RespostasAluno>(); prova.RespostasAlunos = respostaAluno; prova.Disciplina = disc; //Aplicando os valores da Faixa de correção (gambs) prova.ConfigPln.IncorretoInicio = 0; prova.ConfigPln.IncorretoFim = prova.InFim; prova.ConfigPln.RevisarInicio = (prova.InFim + 1); prova.ConfigPln.RevisarFim = prova.ParFim; prova.ConfigPln.CorretoInicio = (prova.ParFim + 1); prova.ConfigPln.CorretoFim = 100; int id = Convert.ToInt32(Session["IdUsr"]); prova.Professor = ProfessorDAO.BuscarProfessorPorId(id); provaFixa = prova; GerarQuestoesProva(); if (ProvaDAO.BuscarPorTituloProva(prova.TituloProva) == null) { return(RedirectToAction("AdicionarQuestoesNaProva", "GerarProva", provaFixa)); } return(RedirectToAction("GerarProva", "GerarProva", provaFixa)); }
public ActionResult SalvarProvaQuestoes(List <int> idquestao, List <double> notas) { for (int i = 0; i < provaFixa.NotasQuestoes.Count; i++) { if (provaFixa.NotasQuestoes[i].Questao.QuestaoId == idquestao[i]) { provaFixa.NotasQuestoes[i].ValorQuestao = Math.Round(notas[i], 2);; } } //adiciona o gabarito de todos os alunosk GerarGabaritoAluno(); if (ProvaDAO.CadastrarProva(provaFixa)) { TempData["$ProvaGerada$"] = "Prova criada com sucesso."; return(RedirectToAction("GerarProva", "GerarProva")); } return(RedirectToAction("AdicionarQuestoesNaProva", "GerarProva", provaFixa)); }
public ActionResult Resultado() { using (IConnection Conexao = new Connection()) { IDAO <Aluno> alunoDAO = new AlunoDAO(Conexao); IDAO <Turma> turmaDAO = new TurmaDAO(Conexao); IDAO <Materia> materiaDAO = new MateriaDAO(Conexao); IDAO <Prova> provaDAO = new ProvaDAO(Conexao); Aluno aluno = new Aluno(); Collection <Prova> prova = provaDAO.Listar(); foreach (var item in prova) { item.Aluno = alunoDAO.ListarPorCodigo(item.IDAluno); item.Aluno.Turma = turmaDAO.ListarPorCodigo(item.Aluno.IDTurma); item.Materia = materiaDAO.ListarPorCodigo(item.IDMateria); } return(View(prova)); } }
public JsonResult GeraAlunos(int qtdTurmas, int qtdAlunos) { string resposta = Util.Resultado.Ok.ToString(); using (IConnection Conexao = new Connection()) { Conexao.Abrir(); IDAO <Turma> turmaDAO = new TurmaDAO(Conexao); IDAO <Aluno> alunoDAO = new AlunoDAO(Conexao); IDAO <Prova> provaDAO = new ProvaDAO(Conexao); IDAO <Materia> materiaDAO = new MateriaDAO(Conexao); provaDAO.ExcluirTodos(); materiaDAO.ExcluirTodos(); alunoDAO.ExcluirTodos(); turmaDAO.ExcluirTodos(); Turma turma = new Turma(); Aluno aluno = new Aluno(); //Gera as turmas automaticamente... for (var i = 1; i <= qtdTurmas; i++) { turma.Nome = Util.cTurma + i.ToString(); turmaDAO.inserir(turma); for (var y = 1; y <= qtdAlunos; y++) { aluno.Nome = Util.cAluno + y.ToString(); aluno.Turma = turma; alunoDAO.inserir(aluno); } } } return(Json(resposta)); }
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); } } } }
public ActionResult VisualizarProva(int ProvaID) { Prova prova = ProvaDAO.BuscarProvaId(ProvaID); return(View(OrdenarObjetosProva(prova))); }
public void RecuperaGabaritosAlunos(int ProvaId, int?Matricula, int?Situacao) { try { List <string> status = new List <string>(); List <string> statusSitu = new List <string>(); List <double> notas = new List <double>(); List <double> notasSitu = new List <double>(); List <RespostasAluno> result = new List <RespostasAluno>(); List <RespostasAluno> resultSitu = new List <RespostasAluno>(); prova = ProvaDAO.BuscarProvaIdConsultaProf(ProvaId); if (Matricula != null) { var matr = Convert.ToInt32(Matricula); Aluno aluno = AlunoDAO.BuscarAlunoPorMatricula(matr); result = prova.RespostasAlunos.GroupBy(x => x.Aluno.AlunoId == aluno.AlunoId) .Select(g => g.First()).ToList(); result.Remove(prova.RespostasAlunos.Where(f => f.Aluno.AlunoId != aluno.AlunoId).First()); } else { result = prova.RespostasAlunos.GroupBy(x => x.Aluno.AlunoId) .Select(g => g.First()).ToList(); } var cont = 0; foreach (var respostas in result) { notas.Add(ClacularNotaTotalAluno(respostas.Aluno.AlunoId, respostas.Prova.ProvaId)); List <RespostasAluno> resps = new List <RespostasAluno>(); resps = respostas.Prova.RespostasAlunos.Where(x => x.RespostaDiscursiva != null && x.Aluno.AlunoId == respostas.Aluno.AlunoId).ToList(); status.Add(""); if (resps.Count != 0) { foreach (var item in resps) { if (item.SituacaoCorrecao == 1 || item.SituacaoCorrecao == 3 || item.SituacaoCorrecao == 4) { status[cont] = "Corrigido"; } else if (item.SituacaoCorrecao == 0) { status[cont] = "Processando"; } else if (item.SituacaoCorrecao == 2 || item.SituacaoCorrecao == 5) { status[cont] = "Corrigir Manual"; break; } else { status[cont] = "Erro!"; } } } else { status[cont] = "Não Realizado"; } cont++; } var cc = 0; var cc2 = 0; foreach (var respostas in result) { List <RespostasAluno> resps = new List <RespostasAluno>(); resps = respostas.Prova.RespostasAlunos.Where(x => x.RespostaDiscursiva != null && x.Aluno.AlunoId == respostas.Aluno.AlunoId).ToList(); if (resps.Count != 0) { var contcor = 0; foreach (var item in resps) { switch (Situacao) { case 0: break; case 1: if (item.SituacaoCorrecao == 1 || item.SituacaoCorrecao == 3 || item.SituacaoCorrecao == 4) { if (contcor == 0) { notasSitu.Add(0); statusSitu.Add(""); resultSitu.Add(item); statusSitu[cc] = (status[cc2]); notasSitu[cc] = (notas[cc2]); cc++; } contcor++; } break; case 2: if (item.SituacaoCorrecao == 0) { notasSitu.Add(0); statusSitu.Add(""); resultSitu.Add(item); statusSitu[cc] = (status[cc2]); notasSitu[cc] = (notas[cc2]); cc++; } break; case 3: if (item.SituacaoCorrecao == 2 || item.SituacaoCorrecao == 5) { notasSitu.Add(0); statusSitu.Add(""); resultSitu.Add(item); statusSitu[cc] = (status[cc2]); notasSitu[cc] = (notas[cc2]); cc++; return; } break; default: break; } if (item.SituacaoCorrecao == 2 || item.SituacaoCorrecao == 5) { break; } if (item.SituacaoCorrecao == 0) { break; } } } else if (Situacao == 4) { notasSitu.Add(0); statusSitu.Add(""); resultSitu.Add(respostas); statusSitu[cc] = (status[cc2]); notasSitu[cc] = (notas[cc2]); cc++; } cc2++; } if (Situacao == 1 || Situacao == 2 || Situacao == 3 || Situacao == 4) { ViewBag.StatusDSProva = statusSitu; ViewBag.NotaDaProva = notasSitu; ViewBag.RespostasAluno = resultSitu; } else { ViewBag.StatusDSProva = status; ViewBag.NotaDaProva = notas; ViewBag.RespostasAluno = result; } } catch (Exception e) { Console.WriteLine("{0} Exception caught.", e); } }
//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); } }