public void IncluirOferta(Oferta pOferta) { try { pOferta.NomeSalvo = (pOferta.SolucaoEducacional.CategoriaConteudo.Sigla + ".SE" + pOferta.SolucaoEducacional.Sequencia + ".OF" + pOferta.Sequencia); this.PreencherInformacoesDeAuditoria(pOferta); bmOferta.Salvar(pOferta); AtualizarNodeIdDrupal(pOferta); //Notificar o Usuário this.NotificarUsuariosQueDesejamReceberNotificacaoOferta(pOferta); } catch (AcademicoException ex) { throw ex; } }
public DTOManterOferta ConsultaOferta(string idsOfertas, string idChaveExternaOferta, string idChaveExternaSolucaoEducacional, AuthenticationProviderRequest pAutenticacao) { DTOManterOferta ofResult = null; try { this.RegistrarLogExecucaoFornecedor((new BMFornecedor()).ObterPorFiltro(new Fornecedor() { Login = pAutenticacao.Login }).FirstOrDefault(), "ConsultaOferta"); using (ofertaBM = new BMOferta()) { IList <int> lsIdsOfertas = null; if (!string.IsNullOrEmpty(idsOfertas)) { lsIdsOfertas = idsOfertas.Split(',').Select(Int32.Parse).ToList(); } var oferta = ofertaBM.ObterOfertaPorFornecedor(lsIdsOfertas, pAutenticacao.Login, idChaveExternaOferta, idChaveExternaSolucaoEducacional); if (oferta == null) { throw new AcademicoException("Oferta não encontrada"); } var existeProximaOferta = false; // #1855 - Caso o fornecedor seja Moodle e caso a oferta esteja vencida, // remover o ID da Chave Externa e continuar buscando a oferta atual. if (oferta.SolucaoEducacional.Fornecedor.ID == (int)enumFornecedor.MoodleSebrae) { if (lsIdsOfertas == null) { lsIdsOfertas = new List <int>(); } lsIdsOfertas.Add(oferta.ID); if (oferta.ListaMatriculaOferta.Any(p => p.StatusMatricula != enumStatusMatricula.Inscrito)) { oferta.IDChaveExterna = null; ofertaBM.Salvar(oferta); } var proximaOferta = ofertaBM.ObterOfertaPorFornecedor(lsIdsOfertas, pAutenticacao.Login, idChaveExternaOferta, idChaveExternaSolucaoEducacional); existeProximaOferta = proximaOferta != null && proximaOferta.ID != oferta.ID; } ofResult = new DTOManterOferta { IDChaveExternaOferta = oferta.IDChaveExterna, DataFimInscricoes = oferta.DataFimInscricoes, DataInicioInscricoes = oferta.DataInicioInscricoes, FiladeEspera = oferta.FiladeEspera, TipoOferta = oferta.TipoOferta.ToString(), IDChaveExternaSolucaoEducacional = oferta.SolucaoEducacional.IDChaveExterna, ListaMatriculaAlunoOferta = new List <DTOMatriculaSE>(), ListaTurmasOferta = new List <DTOManterTurma>(), NomedaOferta = oferta.Nome, QuantidadeMaximaInscricoes = oferta.QuantidadeMaximaInscricoes, QTCargaHoraria = oferta.CargaHoraria, InscricaoOnline = oferta.InscricaoOnline, QTDiasPrazo = oferta.DiasPrazo, CodigoMoodle = oferta.CodigoMoodle.ToString(), ProximaOferta = existeProximaOferta, IDOferta = oferta.ID }; foreach (var mo in oferta.ListaMatriculaOferta) { var dtoMatriculaSE = new DTOMatriculaSE { IdMatriculaOferta = mo.ID, Nome = mo.Usuario.Nome, NivelOcupacional = mo.Usuario.NivelOcupacional.Nome, UF = mo.Usuario.UF.Nome, Cpf = mo.Usuario.CPF, DataNascimento = mo.Usuario.DataNascimento, Email = mo.Usuario.Email, Telefone = mo.Usuario.TelefoneExibicao, Endereco = mo.Usuario.Endereco, Cidade = mo.Usuario.Cidade, Estado = mo.Usuario.Estado, Cep = mo.Usuario.Cep, StatusMatricula = mo.StatusMatricula.ToString(), DataSolicitacao = mo.DataSolicitacao, DataStatusMatricula = mo.DataStatusMatricula, LinkAcesso = mo.LinkAcesso, LinkCertificado = mo.LinkCertificado }; if (mo.MatriculaTurma != null && mo.MatriculaTurma.Count > 0) { var matriculaTurma = mo.MatriculaTurma.First(); dtoMatriculaSE.IDTurma = matriculaTurma.Turma.ID; dtoMatriculaSE.IDChaveExternaTurma = matriculaTurma.Turma.IDChaveExterna; dtoMatriculaSE.NomeTurma = matriculaTurma.Turma.Nome; dtoMatriculaSE.DataMatriculaTurma = matriculaTurma.DataMatricula; dtoMatriculaSE.DataLimite = matriculaTurma.DataLimite; dtoMatriculaSE.Nota1 = matriculaTurma.Nota1; dtoMatriculaSE.Nota2 = matriculaTurma.Nota2; dtoMatriculaSE.MediaFinal = matriculaTurma.MediaFinal; dtoMatriculaSE.NotaOnline = matriculaTurma.ValorNotaProvaOnline; dtoMatriculaSE.DataSolicitacao = mo.DataSolicitacao; dtoMatriculaSE.ValorNotaMinima = matriculaTurma.Turma.NotaMinima; dtoMatriculaSE.AcessoAposConclusao = matriculaTurma.Turma.AcessoAposConclusao ? 1 : 0; } ofResult.ListaMatriculaAlunoOferta.Add(dtoMatriculaSE); } //Listando as turmas vinculadas à Oferta. using (var bmTurma = new BMTurma()) { ofResult.ListaTurmasOferta = new BMTurma() .ObterTodos() .Where(turma => turma.Oferta.ID == oferta.ID) .ToList() .Select(MapearListaParaDtoManterTurma()) .ToList(); } } } catch (AcademicoException ex) { throw new AcademicoException(ex.Message); } catch (Exception ex) { ErroUtil.Instancia.TratarErro(ex); } return(ofResult); }
public void ManterOfertaFornecedor(DTOManterOferta dtoOferta, AuthenticationProviderRequest pAutenticacao) { Fornecedor fornecedor = new BMFornecedor().ObterPorFiltro(new Fornecedor() { Login = pAutenticacao.Login }).FirstOrDefault(); try { this.RegistrarLogExecucaoFornecedor(fornecedor, "ManterOferta"); using (ofertaBM = new BMOferta()) { ValidarCamposObrigatoriosOferta(dtoOferta); SolucaoEducacional solucaoEducacional = new BMSolucaoEducacional().ObterSolucaoEducacionalPorFornecedor(pAutenticacao.Login, dtoOferta.IDChaveExternaSolucaoEducacional); if (solucaoEducacional == null) { throw new AcademicoException("Não foi possível encontrar a Solução Educacional"); } Oferta oferta = ofertaBM.ObterOfertaPorFornecedor(null, fornecedor.Login, dtoOferta.IDChaveExternaOferta, dtoOferta.IDChaveExternaSolucaoEducacional); if (oferta == null) { oferta = new Oferta(); oferta.IDChaveExterna = dtoOferta.IDChaveExternaOferta; oferta.SolucaoEducacional = solucaoEducacional; try { oferta.TipoOferta = (enumTipoOferta)Enum.Parse(typeof(enumTipoOferta), dtoOferta.TipoOferta.ToString()); } catch { throw new AcademicoException("Não foi possível encontrar o Tipo da Oferta"); } oferta.ListaMatriculaOferta = new List <MatriculaOferta>(); } else { if (!string.IsNullOrEmpty(dtoOferta.IDChaveExternaOfertaNova)) { oferta.IDChaveExterna = dtoOferta.IDChaveExternaOfertaNova; } } oferta.DataFimInscricoes = dtoOferta.DataFimInscricoes; oferta.DataInicioInscricoes = dtoOferta.DataInicioInscricoes; oferta.FiladeEspera = dtoOferta.FiladeEspera; oferta.InscricaoOnline = dtoOferta.InscricaoOnline; oferta.Nome = dtoOferta.NomedaOferta; if (dtoOferta.IdCertificado > 0) { oferta.CertificadoTemplate = new BMCertificadoTemplate().ObterPorID(dtoOferta.IdCertificado); } int codigoMoodle = 0; if (int.TryParse(dtoOferta.CodigoMoodle, out codigoMoodle)) { oferta.CodigoMoodle = codigoMoodle; } if (dtoOferta.QTDiasPrazo.HasValue) { oferta.DiasPrazo = dtoOferta.QTDiasPrazo.Value; } else { oferta.DiasPrazo = 30; } oferta.QuantidadeMaximaInscricoes = dtoOferta.QuantidadeMaximaInscricoes; oferta.Auditoria = new Auditoria(pAutenticacao.Login); oferta.CargaHoraria = dtoOferta.QTCargaHoraria; if (dtoOferta.ListaMatriculaAlunoOferta != null && dtoOferta.ListaMatriculaAlunoOferta.Count > 0) { var manterItemTrilhaParticipacao = new BP.ManterItemTrilhaParticipacao(); foreach (var dtoMatriculaSE in dtoOferta.ListaMatriculaAlunoOferta) { if (string.IsNullOrWhiteSpace(dtoMatriculaSE.Cpf)) { throw new AcademicoException("O CPF do aluno é obrigatório"); } if (string.IsNullOrWhiteSpace(dtoMatriculaSE.StatusMatricula)) { throw new AcademicoException("O status da matrícula do aluno é obrigatório"); } enumStatusMatricula statusMatricula; try { statusMatricula = (enumStatusMatricula)Enum.Parse(typeof(enumStatusMatricula), dtoMatriculaSE.StatusMatricula); } catch { throw new AcademicoException("Status da matrícula inválido"); } if (statusMatricula == enumStatusMatricula.CanceladoAdm || statusMatricula == enumStatusMatricula.CanceladoAluno) { continue; } MatriculaOferta matriculaOferta = null; Usuario usuario = null; if (dtoMatriculaSE.IdMatriculaOferta > 0) { matriculaOferta = oferta.ListaMatriculaOferta.Where(x => x.ID == dtoMatriculaSE.IdMatriculaOferta).FirstOrDefault(); usuario = matriculaOferta.Usuario; } else { matriculaOferta = new MatriculaOferta(); usuario = (new BMUsuario()).ObterPorCPF(dtoMatriculaSE.Cpf); if (usuario == null) { throw new AcademicoException("Não foi possível encontrar o aluno"); } matriculaOferta.Oferta = oferta; matriculaOferta.Usuario = usuario; matriculaOferta.UF = usuario.UF; matriculaOferta.NivelOcupacional = usuario.NivelOcupacional; } if (matriculaOferta.ID == 0) { //Criar Matricula Oferta matriculaOferta.StatusMatricula = statusMatricula; matriculaOferta.Auditoria = new Auditoria(pAutenticacao.Login); matriculaOferta.DataSolicitacao = dtoMatriculaSE.DataSolicitacao; matriculaOferta.DataStatusMatricula = dtoMatriculaSE.DataStatusMatricula; matriculaOferta.LinkAcesso = dtoMatriculaSE.LinkAcesso; matriculaOferta.LinkCertificado = dtoMatriculaSE.LinkCertificado; if (!string.IsNullOrWhiteSpace(dtoMatriculaSE.IDChaveExternaTurma)) { //Criar matricula Turma Turma turma = new BMTurma().ObterTurmaPorFornecedor(fornecedor.Login, dtoMatriculaSE.IDChaveExternaTurma); if (turma != null) { MatriculaTurma matriculaTurma = new MatriculaTurma() { Turma = turma, MatriculaOferta = matriculaOferta, DataMatricula = dtoMatriculaSE.DataMatriculaTurma.Value, DataLimite = dtoMatriculaSE.DataLimite.Value, Nota1 = dtoMatriculaSE.Nota1, Nota2 = dtoMatriculaSE.Nota2, MediaFinal = dtoMatriculaSE.MediaFinal, ValorNotaProvaOnline = dtoMatriculaSE.NotaOnline, Auditoria = new Auditoria(pAutenticacao.Login), }; if (matriculaOferta.MatriculaTurma == null) { matriculaOferta.MatriculaTurma = new List <MatriculaTurma>(); } matriculaOferta.MatriculaTurma.Add(matriculaTurma); } } } else { //Alterar Dados da Matricula Oferta bool terminou = false; if (matriculaOferta.StatusMatricula != statusMatricula && (statusMatricula == enumStatusMatricula.Aprovado || statusMatricula == enumStatusMatricula.Concluido)) { terminou = true; } matriculaOferta.StatusMatricula = statusMatricula; matriculaOferta.DataStatusMatricula = dtoMatriculaSE.DataStatusMatricula; matriculaOferta.LinkAcesso = dtoMatriculaSE.LinkAcesso; matriculaOferta.LinkCertificado = dtoMatriculaSE.LinkCertificado; matriculaOferta.Auditoria = new Auditoria(pAutenticacao.Login); //matriculaOferta.DataSolicitacao = dtoMatriculaSE.DataSolicitacao; if (!string.IsNullOrWhiteSpace(dtoMatriculaSE.IDChaveExternaTurma)) { if (matriculaOferta.MatriculaTurma != null && matriculaOferta.MatriculaTurma.Count > 0) { matriculaOferta.MatriculaTurma[0].DataMatricula = dtoMatriculaSE.DataMatriculaTurma.Value; matriculaOferta.MatriculaTurma[0].DataLimite = dtoMatriculaSE.DataLimite.Value; matriculaOferta.MatriculaTurma[0].Nota1 = dtoMatriculaSE.Nota1; matriculaOferta.MatriculaTurma[0].Nota2 = dtoMatriculaSE.Nota2; matriculaOferta.MatriculaTurma[0].MediaFinal = dtoMatriculaSE.MediaFinal; matriculaOferta.MatriculaTurma[0].ValorNotaProvaOnline = dtoMatriculaSE.NotaOnline; if (terminou) { matriculaOferta.MatriculaTurma[0].DataTermino = DateTime.Now; manterItemTrilhaParticipacao.AtualizarStatusParticipacoesTrilhas(matriculaOferta); } matriculaOferta.MatriculaTurma[0].Auditoria = new Auditoria(pAutenticacao.Login); } else { Turma turma = new BMTurma().ObterTurmaPorFornecedor(fornecedor.Login, dtoMatriculaSE.IDChaveExternaTurma); if (turma != null) { MatriculaTurma matriculaTurma = new MatriculaTurma() { Turma = turma, MatriculaOferta = matriculaOferta, DataMatricula = dtoMatriculaSE.DataMatriculaTurma.Value, DataLimite = dtoMatriculaSE.DataLimite.Value, Nota1 = dtoMatriculaSE.Nota1, Nota2 = dtoMatriculaSE.Nota2, MediaFinal = dtoMatriculaSE.MediaFinal, ValorNotaProvaOnline = dtoMatriculaSE.NotaOnline, Auditoria = new Auditoria(pAutenticacao.Login) }; if (matriculaOferta.MatriculaTurma == null) { matriculaOferta.MatriculaTurma = new List <MatriculaTurma>(); } matriculaOferta.MatriculaTurma.Add(matriculaTurma); } } } } if (matriculaOferta.ID == 0) { oferta.ListaMatriculaOferta.Add(matriculaOferta); } } } if (oferta.ID != 0) { ofertaBM.EvictOferta(oferta); } ofertaBM.Salvar(oferta); } } catch (AcademicoException ex) { throw new AcademicoException(ex.Message); } catch (Exception ex) { ErroUtil.Instancia.TratarErro(ex); } }
protected void btnObterChaveExterna_Click(object sender, EventArgs e) { if (string.IsNullOrEmpty(txtIDCurso.Text) || ddlSolucaoEducacional.SelectedIndex <= 0 || ddlOferta.SelectedIndex <= 0) { WebFormHelper.ExibirMensagem(enumTipoMensagem.Alerta, "Você deve informar o ID do curso no Moodle a Solução Educacional e a Oferta"); } else { var solucaoEducacional = bmSolucaoEducacional.ObterPorId(int.Parse(ddlSolucaoEducacional.SelectedValue)); if (solucaoEducacional.Fornecedor.ID != (int)enumFornecedor.MoodleSebrae) { WebFormHelper.ExibirMensagem(enumTipoMensagem.Erro, "Este curso não é fornecido pelo Moodle"); } else { var oferta = bmOferta.ObterPorId(int.Parse(ddlOferta.SelectedValue)); int idCurso = int.Parse(txtIDCurso.Text); var curso = bmCurso.ObterPorID(idCurso); if (curso != null) { var sgusMoodleCurso = bmSgusMoodleCurso.ObterPorCodigoCurso(curso.ID); if (sgusMoodleCurso == null) { sgusMoodleCurso = new SgusMoodleCurso(); sgusMoodleCurso.CodigoCategoria = curso.CodigoCategoria; sgusMoodleCurso.CodigoCurso = curso.ID; sgusMoodleCurso.Nome = curso.NomeCompleto; sgusMoodleCurso.DataCriacao = DateTime.Now; sgusMoodleCurso.DataAtualizacao = DateTime.Now; sgusMoodleCurso.Desabilitado = 1; bmSgusMoodleCurso.Cadastrar(sgusMoodleCurso); } var sgusMoodelOferta = bmSgusMoodleOferta.ObterPorCodigoCurso(curso.ID); if (sgusMoodelOferta == null) { sgusMoodelOferta = new SgusMoodleOferta(); sgusMoodelOferta.CodigoCategoria = curso.CodigoCategoria; sgusMoodelOferta.CodigoCurso = curso.ID; sgusMoodelOferta.Nome = curso.NomeCompleto; sgusMoodelOferta.DataCriacao = DateTime.Now; sgusMoodelOferta.DataAtualizacao = DateTime.Now; sgusMoodelOferta.Desabilitado = 1; bmSgusMoodleOferta.Cadastrar(sgusMoodelOferta); } if (string.IsNullOrEmpty(solucaoEducacional.IDChaveExterna)) { solucaoEducacional.IDChaveExterna = curso.CodigoCategoria.ToString(); bmSolucaoEducacional.Salvar(solucaoEducacional); } bool alterouOferta = false; if (string.IsNullOrEmpty(oferta.IDChaveExterna)) { oferta.IDChaveExterna = sgusMoodelOferta.ID.ToString(); alterouOferta = true; } if (oferta.CodigoMoodle.HasValue == false) { oferta.CodigoMoodle = sgusMoodelOferta.CodigoCurso; alterouOferta = true; } if (alterouOferta) { bmOferta.Salvar(oferta); } dvResumo.Visible = true; string resumo = string.Empty; resumo += "Chave Externa da Solução Educacional: " + sgusMoodleCurso.CodigoCategoria + "<br>"; resumo += "Chave Externa da Oferta: " + sgusMoodelOferta.ID + "<br>"; resumo += "Código Moodle da Oferta: " + sgusMoodelOferta.CodigoCurso + "<br><hr>"; litResumo.Text = resumo; } else { WebFormHelper.ExibirMensagem(enumTipoMensagem.Erro, "Este curso não foi encontrado no Moodle"); } } } }