Ejemplo n.º 1
0
        public static List <ModelTaskServiceSettings> LoadSettings(IConfiguration configuration)
        {
            List <ModelTaskServiceSettings> listOfSettings = new List <ModelTaskServiceSettings>();

            if (Convert.ToBoolean(configuration.GetSection("Services").GetSection("SqlDatabase").GetSection("IsActive").Value))
            {
                listOfSettings.Add(HelperTaskService.LoadSetting("SqlDatabase", configuration));
            }
            if (Convert.ToBoolean(configuration.GetSection("Services").GetSection("MysqlDatabase").GetSection("IsActive").Value))
            {
                listOfSettings.Add(HelperTaskService.LoadSetting("MysqlDatabase", configuration));
            }
            if (Convert.ToBoolean(configuration.GetSection("Services").GetSection("UploadGoogleDrive").GetSection("IsActive").Value))
            {
                listOfSettings.Add(HelperTaskService.LoadSetting("UploadGoogleDrive", configuration));
            }
            if (Convert.ToBoolean(configuration.GetSection("Services").GetSection("CeltaBSSynch").GetSection("IsActive").Value))
            {
                listOfSettings.Add(HelperTaskService.LoadSetting("CeltaBSSynch", configuration));
            }
            if (Convert.ToBoolean(configuration.GetSection("Services").GetSection("OpenVpn").GetSection("IsActive").Value))
            {
                listOfSettings.Add(HelperTaskService.LoadSetting("OpenVpn", configuration));
            }

            return(listOfSettings);
        }
        protected override async Task ExecuteAsync(CancellationToken stoppingToken)
        {
            UtilitariosInfra.UtilTelegram _utilTelegram = new UtilitariosInfra.UtilTelegram(_configuration.GetSection("Services").GetSection("UidTelegramToken").Value);
            try
            {
                await WriteLog("Serviço iniciado.");

                while (!stoppingToken.IsCancellationRequested)
                {
                    // _logger.LogInformation("Worker running at: {time}", DateTimeOffset.Now);
                    // carregar as configurações
                    listOfSettings = HelperTaskService.LoadSettings(_configuration);
                    bool[] arrayActive = new bool[5];

                    foreach (var setting in listOfSettings)
                    {
                        #region BackupRun
                        if (setting.IsActive && setting.Name.Contains("SqlDatabase"))
                        {
                            arrayActive[0] = true;
                        }
                        #endregion

                        #region BackupUpload
                        if (setting.IsActive && setting.Name.Contains("UploadGoogleDrive"))
                        {
                            arrayActive[4] = true;
                        }
                        #endregion
                    }

                    Task t0 = null;
                    Task t4 = null;

                    if (arrayActive[0])
                    {
                        t0 = Task.Run(() =>
                        {
                            ExecuteSqlDatabase(listOfSettings.Find(s => s.Name.Contains("SqlDatabase")));
                        });
                    }

                    // = ExecuteSqlDatabase(listOfSettings.Find(s => s.Name.Contains("SqlDatabase")));

                    if (arrayActive[4])
                    {
                        t4 = Task.Run(() =>
                        {
                            ExecuteUploadGoogleDrive(listOfSettings.Find(s => s.Name.Contains("UploadGoogleDrive")));
                        });
                    }

                    if (arrayActive[0] && arrayActive[4])
                    {
                        while (!t0.IsCompleted || !t4.IsCompleted)
                        {
                        }
                    }

                    while (!t0.IsCompleted)
                    {
                    }

                    await Task.Delay((2 * 60) * 1000);
                }
            }
            catch (Exception err)
            {
                _utilTelegram.SendMessage($"Falha no serviço TaskManager: {err.Message}", _configuration.GetSection("Services").GetSection("UidTelegramDestino").Value);
                await WriteLog(err.Message);
            }
        }