public bool SincronizarOfertaComMoodle(Oferta oferta, SolucaoEducacional solucaoEducacional) { try { // Verificar dados nas tabelas 'int_sgus_moodle_ofertas' e 'int_sgus_moodle_cursos' var bmSgusMoodleOferta = new BMSgusMoodleOferta(); var bmSgusMoodleCurso = new BMSgusMoodleCurso(); int IDCategoriaMoodle = int.Parse(oferta.SolucaoEducacional.IDChaveExterna); int IDCursoMoodle = oferta.CodigoMoodle.Value; var cursoMoodle = bmSgusMoodleCurso.ObterPorCategoria(IDCategoriaMoodle); if (cursoMoodle == null) { cursoMoodle = new SgusMoodleCurso() { Nome = oferta.SolucaoEducacional.Nome, CodigoCategoria = IDCategoriaMoodle, CodigoCurso = IDCursoMoodle, DataCriacao = DateTime.Now, DataAtualizacao = DateTime.Now }; } else { cursoMoodle.Nome = oferta.SolucaoEducacional.Nome; cursoMoodle.CodigoCurso = IDCursoMoodle; cursoMoodle.DataAtualizacao = DateTime.Now; } bmSgusMoodleCurso.Cadastrar(cursoMoodle); var ofertaMoodle = bmSgusMoodleOferta.ObterPorCodigoCurso(IDCursoMoodle); if (ofertaMoodle == null) { ofertaMoodle = new SgusMoodleOferta() { Nome = oferta.Nome, CodigoCategoria = IDCategoriaMoodle, CodigoCurso = IDCursoMoodle, DataCriacao = DateTime.Now, Desabilitado = 1 }; } else { ofertaMoodle.Nome = oferta.Nome; ofertaMoodle.CodigoCategoria = IDCategoriaMoodle; ofertaMoodle.CodigoCurso = IDCursoMoodle; ofertaMoodle.DataCriacao = DateTime.Now; } bmSgusMoodleOferta.Cadastrar(ofertaMoodle); int?IDChaveExternaOferta = bmSgusMoodleOferta.ObterPorCodigoCurso(IDCursoMoodle).ID; if (IDChaveExternaOferta.HasValue && IDChaveExternaOferta.Value > 0) { oferta.IDChaveExterna = IDChaveExternaOferta.ToString(); AlterarOferta(oferta); } // Remover o ID da Chave Externa de todas as ofertas anteriores foreach (var ofertaAnterior in solucaoEducacional.ListaOferta.Where(o => o.DataInicioInscricoes < oferta.DataInicioInscricoes)) { ofertaAnterior.IDChaveExterna = null; AlterarOferta(ofertaAnterior); } return(true); } catch { return(false); } }
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"); } } } }