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); } }