protected override async Task ExecuteAsync(CancellationToken stoppingToken) { try { while (!stoppingToken.IsCancellationRequested) { //if (await IsAllow()) //{ var tasks = new List <Task>(); foreach (var folder in _options.CurrentValue.Folders) { if (await IsAllow(folder)) { var t = Task.Run(async() => { try { var appsetting = _options.CurrentValue.AppSettings.FirstOrDefault(x => x.IdAppSetting == folder.IdAppSetting); IAzureBlobHelper _azureBlobHelper = new AzureBlobHelper(appsetting, folder); await _azureBlobHelper.Compare(); } catch (Exception e) { NLogManager.PublishException(e); } }); tasks.Add(t); await Task.WhenAll(tasks); //await WriteLog("LastRunTime", DateTime.Now.ToString()); //} _logger.LogInformation("Worker running at: {time}", DateTimeOffset.Now); await new MainUtility().WriteLastRunTime("appsettings", DateTime.Now.ToString(), folder); //await Task.Delay( 10000, stoppingToken); } } // sau timerRun phút sẽ chạy lại 1 lần } } catch (Exception ex) { NLogManager.PublishException(ex); } //new TransferWorker.Utility.MainUtility().Write("appsettings", DateTime.Now.ToString()); //new TransferWorker.Utility.MainUtility().LoadLog(); //new TransferWorker.Utility.SendMail().kk(); // var con = _appSettings.StorageConnectionString; // await _azureBlobHelper.UploadFile(); //Authenticate and create a data factory management client //var context = new AuthenticationContext("https://login.windows.net/" + tenantID); //ClientCredential cc = new ClientCredential(applicationId, authenticationKey); //AuthenticationResult result = context.AcquireTokenAsync("https://management.azure.com/", cc).Result; //ServiceClientCredentials cred = new TokenCredentials(result.AccessToken); //var client = new DataFactoryManagementClient(cred) { SubscriptionId = subscriptionId }; }