public string ObterSituacaoPeriodoAcademicoAluno(int idAluno) { MateriaRepository materiaRep = new MateriaRepository(); MateriaAlunoRepository materiaAlunoRep = new MateriaAlunoRepository(); string situacao = string.Empty; int quantMateriasAprovadas = 0; int quantMateriasReprovadas = 0; int quantMaterias = 0; foreach (MateriaAluno materiaAluno in materiaAlunoRep.FindAllByIdAluno(idAluno)) { quantMaterias++; Materia materia = materiaRep.FindById(materiaAluno.IdMateria); decimal mediaPonderada = CalcularMediaPonderada(materiaAluno.NotaProva1, materiaAluno.NotaProva2, materiaAluno.NotaProva3, materia.PesoProva1, materia.PesoProva2, materia.PesoProva3); if (mediaPonderada >= 6.0M) { quantMateriasAprovadas++; } else if (mediaPonderada <= 4.0M) { quantMateriasReprovadas++; } else { //calcula a média aritmética entre a média ponderada e a prova final decimal mediaAritmetica = CalcularMediaAritmetica(mediaPonderada, materiaAluno.NotaProvaFinal); if (mediaAritmetica >= 5.0M) { quantMateriasAprovadas++; } else { quantMateriasReprovadas++; } } } if (quantMateriasAprovadas >= quantMaterias * 0.6) { situacao = "APROVADO"; } else { situacao = "REPROVADO"; } return(situacao); }
public JsonResult ConsultarDetalhesProvasAluno(int id) { try { List <DetalheProvasAlunoViewModel> detalhes = new List <DetalheProvasAlunoViewModel>(); MateriaAlunoRepository materiaAlunoRep = new MateriaAlunoRepository(); MateriaRepository materiaRep = new MateriaRepository(); ISimulacaoPeriodoAcademico simulador = new SimulacaoPeriodoAcademico(); foreach (MateriaAluno ma in materiaAlunoRep.FindAllByIdAluno(id)) { DetalheProvasAlunoViewModel d = new DetalheProvasAlunoViewModel(); Materia materia = materiaRep.FindById(ma.IdMateria); if (materia != null) { d.NomeMateria = materia.Nome; d.Prova1 = Math.Round(ma.NotaProva1, 1); d.Prova2 = Math.Round(ma.NotaProva2, 1); d.Prova3 = Math.Round(ma.NotaProva3, 1); d.ProvaFinal = Math.Round(ma.NotaProvaFinal, 1); d.MediaPonderada = simulador.CalcularMediaPonderada( d.Prova1, d.Prova2, d.Prova3, materia.PesoProva1, materia.PesoProva2, materia.PesoProva3); if (simulador.VerificaSeFazProvaFinal(d.MediaPonderada)) { d.MediaAritmetica = simulador.CalcularMediaAritmetica( d.MediaPonderada, d.ProvaFinal); } d.Situacao = simulador.ObterSituacaoMateria(d.MediaPonderada, d.MediaAritmetica); } detalhes.Add(d); } return(Json(detalhes, JsonRequestBehavior.AllowGet)); } catch (Exception e) { return(Json(e.Message, JsonRequestBehavior.AllowGet)); } }