コード例 #1
0
        private void IniciarThreadGeral()
        {
            var manterSe              = new ManterSolucaoEducacional();
            var manterOferta          = new ManterOferta();
            var manterPr              = new ManterPrograma();
            var manterCp              = new ManterCapacitacao();
            var manterTr              = new ManterTrilha();
            var bmConfiguracaoSistema = new BMConfiguracaoSistema();
            var bmLogSincronia        = new BMLogSincronia();
            var usuarioLogado         = new ManterUsuario().ObterUsuarioLogado();

            var somenteNaoSincronizados = ckbSomenteNaoSincronizados.Checked;


            var thread = new Thread(() =>
            {
                EnviarSolucoes(manterSe, bmConfiguracaoSistema, bmLogSincronia, usuarioLogado, somenteNaoSincronizados);
                EnviarOfertas(manterOferta, bmConfiguracaoSistema, bmLogSincronia, usuarioLogado, somenteNaoSincronizados);
                EnviarProgramasCapacitacoes(manterPr, manterCp, bmConfiguracaoSistema, bmLogSincronia, usuarioLogado, somenteNaoSincronizados);
                EnviarTrilhas(manterTr, bmConfiguracaoSistema, bmLogSincronia, usuarioLogado, somenteNaoSincronizados);
            })
            {
                IsBackground = true,
                Name         = Guid.NewGuid().ToString()
            };

            thread.Start();
        }
コード例 #2
0
        private void EnviarTrilhas(ManterTrilha manterTr,
                                   BMConfiguracaoSistema bmConfiguracaoSistema, BMLogSincronia bmLogSincronia, Usuario usuarioLogado,
                                   bool somenteNaoSincronizados)
        {
            var trilhas = manterTr.ObterTodasTrilhas();

            foreach (var trilha in trilhas)
            {
                try
                {
                    if (somenteNaoSincronizados && trilha.IdNodePortal.HasValue)
                    {
                        continue;
                    }

                    trilha.IdNodePortal = null;

                    manterTr.AtualizarNodeIdDrupal(trilha, manterTr,
                                                   bmConfiguracaoSistema, bmLogSincronia, usuarioLogado);
                }
                catch (Exception)
                {
                    // ignored;
                }
            }
        }
コード例 #3
0
ファイル: DrupalUtil.cs プロジェクト: lincoln-alves/sgus
        public static void RemoverNodeDrupalRest(int id, bool salvarLog = true)
        {
            var basePath       = ConfiguracaoSistemaUtil.ObterInformacoes(enumConfiguracaoSistema.UrlRestPortal).Registro;
            var pathRestPortal =
                ConfiguracaoSistemaUtil.ObterInformacoes(enumConfiguracaoSistema.PathRestPortal).Registro;
            var logSincronia = new LogSincronia
            {
                Usuario      = (new BMUsuario()).ObterUsuarioLogado(),
                Sincronizado = false,
                Url          = basePath + pathRestPortal,
                Action       = "delete",
                Method       = "POST",
                Acao         = enumAcao.Remover
            };
            var postParameters = new Dictionary <string, string>
            {
                { "node_id", id.ToString() }
            };

            logSincronia.ListaPostParameters =
                postParameters.Select(
                    p =>
                    new LogSincroniaPostParameters
            {
                LogSincronia = logSincronia,
                Descricao    = p.Value,
                Registro     = p.Key
            }).ToList();
            logSincronia.Hash = logSincronia.HashObj();

            try
            {
                NodeDrupalRest(logSincronia);
            }
            catch (Exception)
            {
                if (!salvarLog)
                {
                    throw;
                }

                //dll UTIL não tem acesso a camada "BP" Para Evitar "referencing loop detected"
                var bmLogSincronia = new BMLogSincronia();

                var tmpLogSincronia = bmLogSincronia.ObterPorFiltro(logSincronia);

                if (tmpLogSincronia != null && tmpLogSincronia.Sincronizado)
                {
                    return;
                }

                bmLogSincronia.Salvar(logSincronia);
            }
        }
コード例 #4
0
        private void IniciarThreadSolucoes()
        {
            var manterSe = new ManterSolucaoEducacional();
            var bmConfiguracaoSistema = new BMConfiguracaoSistema();
            var bmLogSincronia        = new BMLogSincronia();
            var usuarioLogado         = new ManterUsuario().ObterUsuarioLogado();

            var somenteNaoSincronizados = ckbSomenteNaoSincronizados.Checked;

            var thread =
                new Thread(
                    () => EnviarSolucoes(manterSe, bmConfiguracaoSistema, bmLogSincronia, usuarioLogado, somenteNaoSincronizados))
            {
                IsBackground = true,
                Name         = Guid.NewGuid().ToString()
            };

            thread.Start();
        }
コード例 #5
0
        private void EnviarSolucoes(ManterSolucaoEducacional manterSe, BMConfiguracaoSistema bmConfiguracaoSistema,
                                    BMLogSincronia bmLogSincronia, Usuario usuarioLogado, bool somenteNaoSincronizados)
        {
            try
            {
                var solucoes =
                    manterSe.ObterTodosSolucaoEducacional()
                    .Where(
                        x =>
                        x.ListaAreasTematicas.Any() &&
                        x.FormaAquisicao != null &&
                        x.FormaAquisicao.EnviarPortal &&
                        (somenteNaoSincronizados == false || !x.IdNodePortal.HasValue)).ToList();

                foreach (var solucao in solucoes)
                {
                    try
                    {
                        if (somenteNaoSincronizados && solucao.IdNodePortal.HasValue)
                        {
                            continue;
                        }

                        solucao.IdNodePortal = null;

                        manterSe.AtualizarNodeIdDrupal(solucao, bmConfiguracaoSistema, bmLogSincronia, usuarioLogado);
                    }
                    catch (Exception)
                    {
                        // ignored;
                    }
                }
            }
            catch (Exception)
            {
                throw;
            }
        }
コード例 #6
0
        private void EnviarOfertas(ManterOferta manterOferta, BMConfiguracaoSistema bmConfiguracaoSistema,
                                   BMLogSincronia bmLogSincronia, Usuario usuarioLogado, bool somenteNaoSincronizados)
        {
            try
            {
                var ofertas =
                    manterOferta.ObterTodasOfertas()
                    .Where(
                        x =>
                        x.DataInicioInscricoes.HasValue &&
                        x.DataFimInscricoes.HasValue &&
                        x.SolucaoEducacional.Ativo &&
                        x.SolucaoEducacional.FormaAquisicao != null &&
                        x.SolucaoEducacional.FormaAquisicao.EnviarPortal &&
                        x.SolucaoEducacional.ListaAreasTematicas.Any() &&
                        (somenteNaoSincronizados == false || !x.IdNodePortal.HasValue))
                    .OrderBy(x => x.Nome).ToList();

                foreach (var oferta in ofertas)
                {
                    try
                    {
                        oferta.IdNodePortal = null;

                        manterOferta.AtualizarNodeIdDrupal(oferta, bmConfiguracaoSistema, bmLogSincronia, usuarioLogado);
                    }
                    catch (Exception)
                    {
                        // ignored;
                    }
                }
            }
            catch (Exception)
            {
                throw;
            }
        }
コード例 #7
0
        public int?SalvaNodeDrupalRest(Programa registro, BMConfiguracaoSistema bmConfiguracaoSistema = null, BMLogSincronia bmLogSincronia = null, Usuario usuarioLogado = null)
        {
            var postParameters = DrupalUtil.InitPostParameters(registro.ID, registro.Nome, registro.Apresentacao,
                                                               "solucao", registro.Ativo);

            postParameters.Add("data[field_tipo_de_solucao]", "5");

            DrupalUtil.PermissoesAreaTematica(
                registro.ListaAreasTematicas.Where(p => p.AreaTematica != null).Select(x => x.AreaTematica.ID).ToList(),
                ref postParameters);
            DrupalUtil.PermissoesUf(registro.ListaPermissao.Where(p => p.Uf != null).Select(x => x.Uf.ID).ToList(),
                                    ref postParameters);
            DrupalUtil.PermissoesPerfil(
                registro.ListaPermissao.Where(p => p.Perfil != null).Select(x => x.Perfil.ID).ToList(),
                ref postParameters);
            DrupalUtil.PermissoesNivelOcupacional(
                registro.ListaPermissao.Where(p => p.NivelOcupacional != null)
                .Select(x => x.NivelOcupacional.ID)
                .ToList(), ref postParameters);
            try
            {
                return(DrupalUtil.SalvaNodeDrupalRest(postParameters, true, bmConfiguracaoSistema, bmLogSincronia, usuarioLogado));
            }
            catch (Exception)
            {
                return(null);
            }
        }
コード例 #8
0
 public ManterLogSincronia()
 {
     _bmLogSincronia = new BMLogSincronia();
 }
コード例 #9
0
        private void EnviarProgramasCapacitacoes(ManterPrograma manterPr, ManterCapacitacao manterCp,
                                                 BMConfiguracaoSistema bmConfiguracaoSistema, BMLogSincronia bmLogSincronia, Usuario usuarioLogado, bool somenteNaoSincronizados)
        {
            var programas = manterPr.ObterTodosProgramas();

            foreach (var programa in programas)
            {
                try
                {
                    if (somenteNaoSincronizados && programa.IdNodePortal.HasValue)
                    {
                        continue;
                    }

                    programa.IdNodePortal = null;

                    manterPr.AtualizarNodeIdDrupal(programa, bmConfiguracaoSistema, bmLogSincronia, usuarioLogado);
                }
                catch
                {
                    // ignored;
                }
            }

            var capacitacoes = manterCp.ObterTodasCapacitacoes();

            foreach (var capacitacao in capacitacoes)
            {
                try
                {
                    if (somenteNaoSincronizados && capacitacao.IdNodePortal.HasValue)
                    {
                        continue;
                    }

                    manterCp.AtualizarNodeIdDrupal(capacitacao, bmConfiguracaoSistema, bmLogSincronia, usuarioLogado);
                }
                catch (Exception)
                {
                    // ignored;
                }
            }
        }
コード例 #10
0
        public void AtualizarNodeIdDrupal(SolucaoEducacional solucao, BMConfiguracaoSistema bmConfiguracaoSistema = null, BMLogSincronia bmLogSincronia = null, Usuario usuarioLogado = null)
        {
            if (solucao.FormaAquisicao == null || !solucao.FormaAquisicao.EnviarPortal)
            {
                return;
            }

            var id = SalvaNodeDrupalRest(solucao, bmConfiguracaoSistema, bmLogSincronia, usuarioLogado);

            if (!id.HasValue)
            {
                return;
            }

            solucao.IdNodePortal = id.Value;
            bmSolucaoEducacional.Salvar(solucao, false);
        }
コード例 #11
0
        public int?SalvaNodeDrupalRest(Capacitacao capacitacao, BMConfiguracaoSistema bmConfiguracaoSistema = null, BMLogSincronia bmLogSincronia = null, Usuario usuarioLogado = null)
        {
            var postParameters = DrupalUtil.InitPostParameters(capacitacao.ID, capacitacao.Nome, null, "oferta");

            postParameters.Add("data[field_data_inicio_inscricao]",
                               capacitacao.DataInicioInscricao.HasValue
                    ? DataUtil.ToUnix(capacitacao.DataInicioInscricao.Value).ToString()
                    : "");
            postParameters.Add("data[field_data_fim_inscricao]",
                               capacitacao.DataFimInscricao.HasValue ? DataUtil.ToUnix(capacitacao.DataFimInscricao.Value).ToString() : "");
            postParameters.Add("data[field_carga_horaria]", "0");
            postParameters.Add("data[field_solucao_sgus_id]",
                               (capacitacao.Programa != null ? capacitacao.Programa.ID : 0).ToString());
            postParameters.Add("data[field_tipo_de_solucao]", "5");

            if (capacitacao.Programa != null)
            {
                DrupalUtil.PermissoesUf(
                    capacitacao.Programa.ListaPermissao.Where(p => p.Uf != null).Select(x => x.Uf.ID).ToList(),
                    ref postParameters);
            }
            if (capacitacao.Programa != null)
            {
                DrupalUtil.PermissoesPerfil(
                    capacitacao.Programa.ListaPermissao.Where(p => p.Perfil != null).Select(x => x.Perfil.ID).ToList(),
                    ref postParameters);
            }
            if (capacitacao.Programa != null)
            {
                DrupalUtil.PermissoesNivelOcupacional(
                    capacitacao.Programa.ListaPermissao.Where(p => p.NivelOcupacional != null)
                    .Select(x => x.NivelOcupacional.ID)
                    .ToList(), ref postParameters);
            }

            try
            {
                return(DrupalUtil.SalvaNodeDrupalRest(postParameters, true, bmConfiguracaoSistema, bmLogSincronia, usuarioLogado));
            }
            catch (Exception)
            {
                return(null);
            }
        }
コード例 #12
0
        public void AtualizarNodeIdDrupal(Capacitacao capacitacao, BMConfiguracaoSistema bmConfiguracaoSistema = null, BMLogSincronia bmLogSincronia = null, Usuario usuarioLogado = null)
        {
            var id = SalvaNodeDrupalRest(capacitacao, bmConfiguracaoSistema, bmLogSincronia, usuarioLogado);

            if (!id.HasValue)
            {
                return;
            }

            capacitacao.IdNodePortal = id.Value;

            bmCapacitacao.Salvar(capacitacao);
        }
コード例 #13
0
        public void AtualizarNodeIdDrupal(Programa pPrograma, BMConfiguracaoSistema bmConfiguracaoSistema = null, BMLogSincronia bmLogSincronia = null, Usuario usuarioLogado = null)
        {
            var id = SalvaNodeDrupalRest(pPrograma, bmConfiguracaoSistema, bmLogSincronia, usuarioLogado);

            if (!id.HasValue)
            {
                return;
            }
            pPrograma.IdNodePortal = id.Value;

            bmPrograma.Salvar(pPrograma);
        }
コード例 #14
0
ファイル: DrupalUtil.cs プロジェクト: lincoln-alves/sgus
        public static int?SalvaNodeDrupalRest(Dictionary <string, string> postParameters, bool salvarLog = true, BMConfiguracaoSistema bmConfiguracaoSistema = null, BMLogSincronia bmLogSincronia = null, Usuario usuarioLogado = null)
        {
            var basePath = ConfiguracaoSistemaUtil.ObterInformacoes(enumConfiguracaoSistema.UrlRestPortal, bmConfiguracaoSistema).Registro;

            var pathRestPortal =
                ConfiguracaoSistemaUtil.ObterInformacoes(enumConfiguracaoSistema.PathRestPortal, bmConfiguracaoSistema).Registro;

            var logSincronia = new LogSincronia
            {
                Usuario      = usuarioLogado ?? new BMUsuario().ObterUsuarioLogado(),
                Sincronizado = false,
                Url          = basePath + pathRestPortal,
                Action       = "import",
                Method       = "POST",
                Acao         = enumAcao.Atualizar
            };

            logSincronia.ListaPostParameters =
                postParameters.Select(
                    p =>
                    new LogSincroniaPostParameters
            {
                LogSincronia = logSincronia,
                Descricao    = p.Value,
                Registro     = p.Key
            }).ToList();

            logSincronia.Hash = logSincronia.HashObj();

            try
            {
                return(NodeDrupalRest(logSincronia, bmConfiguracaoSistema));
            }
            catch
            {
                if (!salvarLog)
                {
                    throw;
                }

                //dll UTIL não tem acesso a camada "BP" Para Evitar "referencing loop detected"
                bmLogSincronia = bmLogSincronia ?? new BMLogSincronia();

                var tmpLogSincronia = bmLogSincronia.ObterPorFiltro(logSincronia);

                if (tmpLogSincronia != null && tmpLogSincronia.Sincronizado)
                {
                    return(null);
                }

                bmLogSincronia.Salvar(logSincronia);

                return(null);
            }
        }
コード例 #15
0
ファイル: ManterOferta.cs プロジェクト: lincoln-alves/sgus
        public int?SalvaNodeDrupalRest(Oferta oferta, BMConfiguracaoSistema bmConfiguracaoSistema = null, BMLogSincronia bmLogSincronia = null, Usuario usuarioLogado = null)
        {
            var postParameters = DrupalUtil.InitPostParameters(oferta.ID, oferta.Nome, null, "oferta");

            postParameters.Add("data[field_data_inicio_inscricao]", oferta.DataInicioInscricoes.HasValue ? DataUtil.ToUnix(oferta.DataInicioInscricoes.Value).ToString() : "");
            postParameters.Add("data[field_data_fim_inscricao]", oferta.DataFimInscricoes.HasValue ? DataUtil.ToUnix(oferta.DataFimInscricoes.Value).ToString() : "");
            postParameters.Add("data[field_carga_horaria]", oferta.CargaHoraria.ToString());
            postParameters.Add("data[field_solucao_sgus_id]", (oferta.SolucaoEducacional != null ? oferta.SolucaoEducacional.ID : 0).ToString());

            /*1 - Cursos Online; 2 - Cursos Presenciais; 3 - Cursos Mistos; 4 - Trilhas; 5 - Programas*/
            var tipoDeSolucao = 1;

            if (oferta.SolucaoEducacional != null)
            {
                switch (oferta.SolucaoEducacional.FormaAquisicao.ID)
                {
                // Curso presencial.
                case 22:
                    tipoDeSolucao = 2;
                    break;

                // Curso misto.
                case 40:
                    tipoDeSolucao = 3;
                    break;

                // Jogo online, Jogo presencial e Jogo misto.
                case 43:
                case 44:
                case 45:
                case 113:
                    tipoDeSolucao = 6;
                    break;

                default:
                    tipoDeSolucao = 1;
                    break;
                }
            }

            postParameters.Add("data[field_tipo_de_solucao]", tipoDeSolucao.ToString());

            DrupalUtil.PermissoesUf(oferta.ListaPermissao.Where(p => p.Uf != null).Select(x => x.Uf.ID).ToList(), ref postParameters);
            DrupalUtil.PermissoesPerfil(oferta.ListaPermissao.Where(p => p.Perfil != null).Select(x => x.Perfil.ID).ToList(), ref postParameters);
            DrupalUtil.PermissoesNivelOcupacional(oferta.ListaPermissao.Where(p => p.NivelOcupacional != null).Select(x => x.NivelOcupacional.ID).ToList(), ref postParameters);
            try
            {
                return(DrupalUtil.SalvaNodeDrupalRest(postParameters, true, bmConfiguracaoSistema, bmLogSincronia, usuarioLogado));
            }
            catch (Exception)
            {
                return(null);
            }
        }
コード例 #16
0
ファイル: ManterOferta.cs プロジェクト: lincoln-alves/sgus
        public void AtualizarNodeIdDrupal(Oferta oferta, BMConfiguracaoSistema bmConfiguracaoSistema = null, BMLogSincronia bmLogSincronia = null, Usuario usuarioLogado = null)
        {
            if (oferta.SolucaoEducacional.FormaAquisicao == null || !oferta.SolucaoEducacional.FormaAquisicao.EnviarPortal)
            {
                return;
            }

            if (oferta.InscricaoOnline != null && oferta.IdNodePortal != null && !oferta.InscricaoOnline.Value)
            {
                DrupalUtil.RemoverNodeDrupalRest(oferta.IdNodePortal.Value);
                return;
            }

            var id = SalvaNodeDrupalRest(oferta, bmConfiguracaoSistema, bmLogSincronia, usuarioLogado);

            if (!id.HasValue)
            {
                return;
            }

            oferta.IdNodePortal = id.Value;

            bmOferta.Salvar(oferta, false);
        }
コード例 #17
0
        public int?SalvaNodeDrupalRest(Trilha trilha, BMConfiguracaoSistema bmConfiguracaoSistema, BMLogSincronia bmLogSincronia, Usuario usuarioLogado, bool statusNivelTrilha = false)
        {
            var postParameters = DrupalUtil.InitPostParameters(trilha.ID, trilha.Nome, trilha.Descricao, "solucao", statusNivelTrilha);

            postParameters.Add("data[field_tipo_de_solucao]", "4");

            DrupalUtil.PermissoesAreaTematica(
                trilha.ListaAreasTematicas.Where(p => p.AreaTematica != null).Select(x => x.AreaTematica.ID).ToList(),
                ref postParameters);

            var permissoesUfs                = trilha.ObterUfsDasPermissoes();
            var permissoesPerfis             = trilha.ObterPerfisDasPermissoes();
            var permissoesNiveisOcupacionais = trilha.ObterNiveisOcupacionaisDasPermissoes();

            DrupalUtil.PermissoesUf(permissoesUfs.Select(x => x.ID).ToList(), ref postParameters);
            DrupalUtil.PermissoesPerfil(permissoesPerfis.Select(x => x.ID).ToList(),
                                        ref postParameters);
            DrupalUtil.PermissoesNivelOcupacional(permissoesNiveisOcupacionais.Select(x => x.ID).ToList(),
                                                  ref postParameters);

            try
            {
                return(DrupalUtil.SalvaNodeDrupalRest(postParameters, true, bmConfiguracaoSistema, bmLogSincronia, usuarioLogado));
            }
            catch (Exception)
            {
                return(null);
            }
        }
コード例 #18
0
        public void AtualizarNodeIdDrupal(Trilha trilha, ManterTrilha manterTr = null, BMConfiguracaoSistema bmConfiguracaoSistema = null, BMLogSincronia bmLogSincronia = null, Usuario usuarioLogado = null, bool statusTrilhaNivel = false)
        {
            var id = SalvaNodeDrupalRest(trilha, bmConfiguracaoSistema, bmLogSincronia, usuarioLogado, statusTrilhaNivel);

            if (!id.HasValue)
            {
                return;
            }

            trilha.IdNodePortal = id;


            (manterTr ?? new ManterTrilha()).Salvar(trilha);
        }
コード例 #19
0
        public int?SalvaNodeDrupalRest(SolucaoEducacional registro, BMConfiguracaoSistema bmConfiguracaoSistema = null, BMLogSincronia bmLogSincronia = null, Usuario usuarioLogado = null)
        {
            var postParameters = DrupalUtil.InitPostParameters(registro.ID, registro.Nome, registro.Apresentacao,
                                                               "solucao", registro.Ativo);

            /*1 - Cursos Online; 2 - Cursos Presenciais; 3 - Cursos Mistos; 4 - Trilhas; 5 - Programas*/
            int tipoDeSolucao;

            switch (registro.FormaAquisicao.ID)
            {
            // Curso presencial.
            case 22:
                tipoDeSolucao = 2;
                break;

            // Curso misto.
            case 40:
                tipoDeSolucao = 3;
                break;

            // Jogo online, Jogo presencial e Jogo misto.
            case 43:
            case 44:
            case 45:
            case 113:
                tipoDeSolucao = 6;
                break;

            default:
                tipoDeSolucao = 1;
                break;
            }

            postParameters.Add("data[field_tipo_de_solucao]", tipoDeSolucao.ToString());

            DrupalUtil.PermissoesAreaTematica(registro.ListaAreasTematicas.Select(x => x.AreaTematica.ID).ToList(),
                                              ref postParameters);

            DrupalUtil.PermissoesUf(registro.ListaPermissao.Where(p => p.Uf != null).Select(x => x.Uf.ID).ToList(),
                                    ref postParameters);

            DrupalUtil.PermissoesPerfil(
                registro.ListaPermissao.Where(p => p.Perfil != null).Select(x => x.Perfil.ID).ToList(),
                ref postParameters);

            DrupalUtil.PermissoesNivelOcupacional(
                registro.ListaPermissao.Where(p => p.NivelOcupacional != null)
                .Select(x => x.NivelOcupacional.ID)
                .ToList(), ref postParameters);

            try
            {
                return(DrupalUtil.SalvaNodeDrupalRest(postParameters, true, bmConfiguracaoSistema, bmLogSincronia, usuarioLogado));
            }
            catch (Exception)
            {
                throw new AlertException("Erro na sincronização. Tente salvar novamente.");
            }
        }