示例#1
0
        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));
            }
        }