private void EnviarMensagematrasoPorMatriculaTurma(MensageriaParametros pMensgrParametro) { try { IList <MatriculaTurma> lstMatriculaTurma = new BMMatriculaTurma().ObterMatriculasDataExpiracao(pMensgrParametro.DiaAviso); BMMensageriaRegistro mensageriaRegistroBM = new BMMensageriaRegistro(); foreach (MatriculaTurma mt in lstMatriculaTurma) { if (!mensageriaRegistroBM.ValidarComunicacaoEfetuada(mt)) { MensageriaRegistro mr = new MensageriaRegistro() { Auditoria = new Auditoria(null), MatriculaTurma = mt, MensageriaParametro = pMensgrParametro, DataEnvio = DateTime.Now, Usuario = mt.MatriculaOferta.Usuario }; mr.TextoEnviado = TextoTemplateMensagem(mr); //EnviarMensagem(mr); mensageriaRegistroBM.Salvar(mr); } } } catch (Exception ex) { ErroUtil.Instancia.TratarErro(ex); } }
private void VerificarStatus(Turma turma, enumStatusTurma?statusAnterior) { var exceptionCancelamento = string.Empty; var matriculasTurma = new BMMatriculaTurma().ObterPorTurma(turma); if (turma.Status == enumStatusTurma.Cancelada) { try { NotificarCancelamento(turma); } catch (AcademicoException ex) { exceptionCancelamento = ex.Message; } // Alterar status das matrículas para Cancelado ADM. foreach (var matricula in matriculasTurma) { matricula.MatriculaOferta.StatusMatricula = enumStatusMatricula.CanceladoTurma; new ManterMatriculaOferta().Salvar(matricula.MatriculaOferta); new ManterItemTrilhaParticipacao().AtualizarStatusParticipacoesTrilhas(matricula.MatriculaOferta); } } // Caso a turma esteja sendo alterada de cancelamento para prevista, altera as matrículas para Inscrito. if (statusAnterior == enumStatusTurma.Cancelada && turma.Status == enumStatusTurma.Prevista) { // Alterar status das matrículas para Inscrito. foreach (var matricula in matriculasTurma) { matricula.MatriculaOferta.StatusMatricula = enumStatusMatricula.Inscrito; new ManterMatriculaOferta().Salvar(matricula.MatriculaOferta); new ManterItemTrilhaParticipacao().AtualizarStatusParticipacoesTrilhas(matricula.MatriculaOferta); } } if (turma.Status == enumStatusTurma.Confirmada) { try { NotificarConfirmacao(turma); } catch (AcademicoException ex) { throw new AcademicoException( "Turma salva com sucesso, porém ocorreram os seguintes erros no envio de e-mail: " + Environment.NewLine + (!string.IsNullOrWhiteSpace(exceptionCancelamento) ? exceptionCancelamento : "") + Environment.NewLine + ex.Message); } } }
public void RegistrarAbandono() { try { //Executando para Matrícula Turma IList <MatriculaTurma> lstMT = new BMMatriculaTurma().ObterVencidos(); foreach (MatriculaTurma mt in lstMT) { BMUsuarioAbandono usuarioAbandonoBM = new BMUsuarioAbandono(); //if (usuarioAbandonoBM.ValidarAbandonoAtivo(mt.MatriculaOferta.Usuario.ID)) // continue; //else if (mt.Turma.Oferta.ListaMatriculaOferta.Where(x => x.StatusMatricula != enumStatusMatricula.Inscrito).Count() > 0 || // mt.MatriculaOferta.StatusMatricula == enumStatusMatricula.Inscrito) // continue; if (!mt.MediaFinal.HasValue || mt.MediaFinal.Value == 0) { MatriculaOferta mof = mt.MatriculaOferta; usuarioAbandonoBM.Salvar(new UsuarioAbandono() { DataFimAbandono = DateTime.Now.Date.AddDays(int.Parse(ConfiguracaoSistemaUtil.ObterInformacoes(enumConfiguracaoSistema.LimiteAlertaInscricaoOferta).Registro)), DataInicioAbandono = DateTime.Now.Date, Desconsiderado = false, Usuario = new BMUsuario().ObterPorId(mt.MatriculaOferta.Usuario.ID), Origem = "Abandono SE: " + mof.Oferta.SolucaoEducacional.Nome }); if (mof != null) { mof.StatusMatricula = enumStatusMatricula.Abandono; new BMMatriculaOferta().Salvar(mof); } } else { } } //Executando para Usuário trilha IList <UsuarioTrilha> lstUserTrilha = new BMUsuarioTrilha().ObterVencidos(); foreach (UsuarioTrilha ut in lstUserTrilha) { BMUsuarioAbandono usuarioAbandonoBM = new BMUsuarioAbandono(); if (usuarioAbandonoBM.ValidarAbandonoAtivo(ut.Usuario.ID)) { continue; } if (usuarioAbandonoBM.ObterPorUsuario(new BMUsuario().ObterPorId(ut.Usuario.ID)) == null) { //usuarioAbandonoBM.Salvar(new UsuarioAbandono() //{ // DataFimAbandono = DateTime.Now.Date.AddDays(ParametrosSistema.DiasFinalAbandono), // DataInicioAbandono = DateTime.Now.Date, // Desconsiderado = false, // Usuario = new BMUsuario().ObterPorId(ut.Usuario.ID) //}); ut.StatusMatricula = enumStatusMatricula.Abandono; new BMUsuarioTrilha().Salvar(ut); } } } catch (Exception ex) { ErroUtil.Instancia.TratarErro(ex); } }
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); } }
/// <summary> /// Em resumo: buscar status "utilizados" em questionários. /// Não resumindo: Obter, de forma bem dispendiosa, status que são utilizados em MatriculaTurma e /// UsuarioTrilha, cujos ID_Turma e ID_TrilhaNivel existam em QuestionarioParticipacao. /// </summary> /// <returns></returns> public List <StatusMatricula> ObterTodosQuePossuemQuestionarios() { var questionariosTrilhaNivel = new BMQuestionarioParticipacao().ObterTodosQuestionariosComParticipacaoQueryble() .Where(x => x.TrilhaNivel != null) .Select(x => new QuestionarioParticipacao { Usuario = new Usuario { ID = x.Usuario.ID }, TrilhaNivel = x.TrilhaNivel != null ? new TrilhaNivel { ID = x.TrilhaNivel.ID } : null }).ToList(); var questionariosTurma = new BMQuestionarioParticipacao().ObterTodosQuestionariosComParticipacaoQueryble() .Where(x => x.Turma != null) .Select(x => new QuestionarioParticipacao { Usuario = new Usuario { ID = x.Usuario.ID }, Turma = x.Turma != null ? new Turma { ID = x.Turma.ID } : null, }).ToList(); var usuariosTrilha = new BMUsuarioTrilha().ObterTodosIQueryable() .Select(x => new UsuarioTrilha { ID = x.ID, StatusMatricula = x.StatusMatricula, Usuario = new Usuario { ID = x.Usuario.ID }, TrilhaNivel = new TrilhaNivel { ID = x.TrilhaNivel.ID } }).ToList(); var matriculasTurma = new BMMatriculaTurma().ObterTodosIQueryable().Select(x => new MatriculaTurma { ID = x.ID, Turma = new Turma { ID = x.Turma.ID }, MatriculaOferta = new MatriculaOferta { ID = x.MatriculaOferta.ID, Usuario = new Usuario { ID = x.MatriculaOferta.Usuario.ID }, StatusMatricula = x.MatriculaOferta.StatusMatricula } }).ToList(); return (_bmStatusMatricula.ObterTodosIncluindoEspecificos() .Where( status => matriculasTurma.Any( mt => (int)mt.MatriculaOferta.StatusMatricula == status.ID && questionariosTurma.Any( qt => qt.Usuario.ID == mt.MatriculaOferta.Usuario.ID && qt.Turma.ID == mt.Turma.ID)) || usuariosTrilha.Any( ut => (int)ut.StatusMatricula == status.ID && questionariosTrilhaNivel.Any( qt => qt.Usuario.ID == ut.Usuario.ID && qt.TrilhaNivel.ID == ut.TrilhaNivel.ID)) ) .ToList()); }
public RetornoWebService AtualizarNotaAlunoMoodle(string chaveExternaSolucao, string chaveExternaTurma, string codCurso, string idUsuario, string nota, string dataConclusao) { try { //Pega a última turma var turma = new BMTurma().ObterUltimaTurmaPorChaveExterna(chaveExternaTurma); //Pega o id do pelo cpf(idUsuario) usuário var usuario = new BMUsuario().ObterPorCPF(idUsuario); if (usuario?.ID > 0) { //Pegar a MatriculaOferta var bmMatriculaOrfeta = new BMMatriculaOferta(); var matriculaOferta = bmMatriculaOrfeta.ObterPorOfertaEUsuario(turma.Oferta.ID, usuario.ID); //Pegar a MatriculaTurma var matriculaTurma = new BMMatriculaTurma().ObterMatriculaTurma(usuario.ID, turma.Oferta.ID); double notaFinal; if (double.TryParse(nota, out notaFinal)) { matriculaTurma.MediaFinal = notaFinal; } matriculaTurma.DataTermino = DateTime.Now; new BMMatriculaTurma().Salvar(matriculaTurma); if (notaFinal >= 7) { matriculaOferta.StatusMatricula = enumStatusMatricula.Aprovado; } else { matriculaOferta.StatusMatricula = enumStatusMatricula.Reprovado; } bmMatriculaOrfeta.Salvar(matriculaOferta); return(new RetornoWebService() { Erro = 0, Mensagem = string.Empty }); } return(new RetornoWebService() { Erro = 1, Mensagem = "usuario não encontrado" }); } catch (Exception ex) { return(new RetornoWebService() { Erro = 1, Mensagem = ex.Message }); } }
public ManterMatriculaTurma() : base() { bmMatriculaTurma = new BMMatriculaTurma(); }