コード例 #1
0
        public bool ManterMatriculaTurma(int idMatriculaOferta, int idTurma, double mediaFinal, AuthenticationProviderRequest autenticacao)
        {
            try
            {
                RegistrarLogExecucaoFornecedor((new BMFornecedor()).ObterPorFiltro(new Fornecedor()
                {
                    Login = autenticacao.Login
                }).FirstOrDefault(), "ManterMatriculaTurma");

                var bmMatriculaTurma  = new BMMatriculaTurma();
                var bmMatriculaOferta = new BMMatriculaOferta();
                var bmTurma           = new BMTurma();

                MatriculaTurma matriculaTurma = new MatriculaTurma();
                matriculaTurma.MatriculaOferta    = new MatriculaOferta();
                matriculaTurma.Turma              = new Turma();
                matriculaTurma.MatriculaOferta.ID = idMatriculaOferta;
                matriculaTurma.Turma.ID           = idTurma;

                matriculaTurma = bmMatriculaTurma.ObterPorFiltro(matriculaTurma).FirstOrDefault();

                if (matriculaTurma != null)
                {
                    MatriculaOferta matriculaOferta = bmMatriculaOferta.ObterPorID(idMatriculaOferta);
                    Turma           turma           = bmTurma.ObterPorID(idTurma);

                    matriculaTurma.MediaFinal = matriculaOferta.StatusMatricula == enumStatusMatricula.Abandono
                        ? null
                        : (double?)mediaFinal;

                    if (matriculaTurma.MediaFinal == 0)
                    {
                        matriculaTurma.MediaFinal = null;
                    }

                    if (!matriculaTurma.DataTermino.HasValue)
                    {
                        matriculaTurma.DataTermino = DateTime.Now;
                    }

                    decimal notaMinima = turma.NotaMinima.HasValue ? turma.NotaMinima.Value : 7;
                    decimal notaFinal  = matriculaTurma.MediaFinal.HasValue ? Convert.ToDecimal(matriculaTurma.MediaFinal.Value) : decimal.Zero;

                    if (notaFinal >= notaMinima)
                    {
                        matriculaOferta.StatusMatricula = enumStatusMatricula.Aprovado;
                    }
                    else
                    {
                        // Se já tiver terminada a turma vamos reprovar o aluno e ele não obteve nota para ser aprovado vamos reprovar ele
                        if (matriculaTurma.DataLimite < DateTime.Now)
                        {
                            // Se não obteve nenhuma nota é abandono
                            if (notaFinal == 0)
                            {
                                matriculaOferta.StatusMatricula = enumStatusMatricula.Abandono;
                            }
                            // Do contrário é deve ser reprovado
                            else
                            {
                                matriculaOferta.StatusMatricula = enumStatusMatricula.Reprovado;
                            }
                        }
                    }

                    matriculaTurma.Auditoria.UsuarioAuditoria = matriculaOferta.Auditoria.UsuarioAuditoria = autenticacao.Login;
                    matriculaOferta.Auditoria.DataAuditoria   = matriculaTurma.Auditoria.DataAuditoria = DateTime.Now;

                    bmMatriculaTurma.Salvar(matriculaTurma);
                    bmMatriculaOferta.Salvar(matriculaOferta);

                    //CASO A OFERTA FOR CONTINUA, VERIFICA E ATUALIZA O ITEM TRILHA DO USUARIO
                    new BP.ManterItemTrilhaParticipacao().vinculaMatriculaOferta(matriculaOferta);

                    new BP.ManterItemTrilhaParticipacao().AtualizarStatusParticipacoesTrilhas(matriculaOferta);
                }

                return(true);
            }
            catch
            {
                return(false);
            }
        }
コード例 #2
0
 public Turma ObterTurmaPorID(int pId, bool carregarProfessores = true)
 {
     return(bmTurma.ObterPorID(pId, carregarProfessores));
 }