Esempio n. 1
0
        public void DerrubaConexoes()
        {
            var context = new PostoContext(Configuracao);

            context.Query("SELECT pg_terminate_backend(PID) FROM pg_stat_activity WHERE PID <> pg_backend_pid()").ExecuteNonQuery();
            context.Close();
        }
Esempio n. 2
0
        /// <summary>
        /// Atualiza viewmodel com as informações do banco de dados
        /// </summary>
        public async Task <bool> AtualizaViewModel()
        {
            return(await Task.Run(() =>
            {
                try
                {
                    var context = new PostoContext(ConfiguracaoModel);
                    var query = context.Query("SELECT *, (SELECT oft000.parversao FROM oft000 LIMIT 1) AS versao, NOW() AS dataAtual FROM atualiz");

                    using (var reader = query.ExecuteReader())
                    {
                        while (reader.Read())
                        {
                            AtualizarModel.Dia = reader.GetInt16(reader.GetOrdinal("atuDiaSema"));
                            AtualizarModel.Hora = Convert.ToInt16(reader.GetString(reader.GetOrdinal("atuHoraMin")).Split(':')[0]);
                            AtualizarModel.Minuto = Convert.ToInt16(reader.GetString(reader.GetOrdinal("atuHoraMin")).Split(':')[1]);
                            AtualizarModel.UltimaData = reader.GetDateTime(reader.GetOrdinal("atuDatAtua"));
                            AtualizarModel.Versao = reader.GetInt32(reader.GetOrdinal("versao"));
                            AtualizarModel.DataAtual = reader.GetDateTime(reader.GetOrdinal("dataAtual"));
                        }
                    }
                    context.Close();
                    return true;
                }
                catch (Exception e)
                {
                    log.Error(e.Message);
                    return false;
                }
            }));
        }
Esempio n. 3
0
 /// <summary>
 /// Atualiza data da atualização no banco de dados com a data atual
 /// </summary>
 private async Task <bool> AtualizarBanco(PostoContext context)
 {
     return(await Task.Run(() =>
     {
         try
         {
             TelaPrincipal.AbaAtualizacao.LabelContent = "Atualizando versão do banco de dados...";
             context.Query("UPDATE atualiz SET atuDatAtua = '" + DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss") + "'").ExecuteNonQuery();
             return true;
         }
         catch (Exception e)
         {
             log.Error(e.Message);
             TelaPrincipal.AbaAtualizacao.LabelContent = "Problemas ao atualizar versão.";
             return false;
         }
     }));
 }
Esempio n. 4
0
        public void CarregaIndicadores()
        {
            try
            {
                var context = new PostoContext(Configuracao);
                var query   = context.Query("SELECT * FROM " + TabAtualizacao + " WHERE " + ColAtuCodigo + " = 1 LIMIT 1");

                using (var reader = query.ExecuteReader())
                {
                    while (reader.Read())
                    {
                        EmManutencao   = (reader.GetString(reader.GetOrdinal(ColManutencao)) == "S") ? true : false;
                        FimManutencao  = (reader.GetString(reader.GetOrdinal(ColFimManutencao)) == "S") ? true : false;
                        AtualizouBanco = (reader.GetString(reader.GetOrdinal(ColAtualizaDB)) == "S") ? true : false;
                        AtualizouExe   = (reader.GetString(reader.GetOrdinal(ColAtualizaExe)) == "S") ? true : false;
                    }
                }
                context.Close();
            }
            catch (Exception e)
            {
                log.Error(e.Message);
            }
        }
Esempio n. 5
0
        /// <summary>
        /// Roda Rmenu todos de uma vez e retorna a ultima versão
        /// </summary>
        private async Task <bool> AtualizarSql(PostoContext context, bool backup)
        {
            return(await Task.Run(async() =>
            {
                try
                {
                    await BuscaVersoes();

                    Rmenu = "";

                    TelaPrincipal.AbaAtualizacao.LabelContent = "Baixando o Rmenu...";
                    ListaSql.ForEach(row =>
                    {
                        Rmenu += Encoding.ASCII.GetString(Ftp.Download((PathSql + row.Arquivo), TelaPrincipal));
                    });

                    if (backup)
                    {
                        TelaPrincipal.AbaAtualizacao.ProgressoBarra2 = 17;

                        if (Rmenu != "")
                        {
                            if (ConfiguracaoModel.DiretorioPostgreSql == "")
                            {
                                throw new Exception("Não definido o diretório para do postgres para a rotina de backup do banco.");
                            }
                            else
                            {
                                TelaPrincipal.AbaAtualizacao.LabelContent = "Gerando backup do banco de dados";

                                if (!await ExecutaBackup())
                                {
                                    throw new Exception("Ocorreu um erro ao tentar gerar backup antes de atualizar o sistema.");
                                }
                            }
                        }
                    }

                    TelaPrincipal.AbaAtualizacao.ProgressoBarra2 = 25;
                    TelaPrincipal.AbaAtualizacao.IsIndeterminateBarra1 = true;
                    TelaPrincipal.AbaAtualizacao.LabelContent = "Executando Rmenu de v." + AtualizarModel.Versao.ToString() + " até v." + UltimaVersao.ToString() + "";

                    context.Query(Rmenu).ExecuteNonQuery();

                    TelaPrincipal.Indicadores.AtualizouBanco = true;
                    TelaPrincipal.AbaAtualizacao.IsIndeterminateBarra1 = false;
                }
                catch (Exception e)
                {
                    context.RollBack();
                    log.Error(e.Message);
                    TelaPrincipal.AbaAtualizacao.LabelContent = "Problemas ao rodar o Rmenu.";

                    return false;
                }
                finally
                {
                    context.Commit();

                    if (UltimaVersao <= 0)
                    {
                        UltimaVersao = AtualizarModel.Versao.GetValueOrDefault();
                    }
                }
                return true;
            }));
        }