diff --git a/PartSource.Automation/Jobs/POC/BulkUpdateInventory.cs b/PartSource.Automation/Jobs/BulkUpdateInventory.cs similarity index 89% rename from PartSource.Automation/Jobs/POC/BulkUpdateInventory.cs rename to PartSource.Automation/Jobs/BulkUpdateInventory.cs index 5b60373..8dfcfdc 100644 --- a/PartSource.Automation/Jobs/POC/BulkUpdateInventory.cs +++ b/PartSource.Automation/Jobs/BulkUpdateInventory.cs @@ -14,19 +14,22 @@ using PartSource.Automation.Models.Ftp; using PartSource.Automation.Services; using Ratermania.Automation.Interfaces; -namespace PartSource.Automation.Jobs.POC +namespace PartSource.Automation.Jobs { public class BulkUpdateInventory : IAutomationJob { private readonly FtpService _ftpService; private readonly ILogger _logger; + private readonly string _connectionString; public BulkUpdateInventory(IConfiguration configuration, ILogger logger) { FtpConfiguration ftpConfiguration = configuration.GetSection("FtpServers:AutomationConfiguration").Get(); _ftpService = new FtpService(ftpConfiguration); - _logger = logger; + _connectionString = configuration.GetConnectionString("PartSourceDatabase"); + + _logger = logger; } public async Task Run(CancellationToken token, params string[] arguments) @@ -46,7 +49,7 @@ namespace PartSource.Automation.Jobs.POC DataTable dataTable = GetDataTable(file); - using SqlConnection connection = new SqlConnection("Server=tcp:ps-whi.database.windows.net,1433;Initial Catalog=ps-whi-test;Persist Security Info=False;User ID=ps-whi;Password=9-^*N5dw!6:|.5Q;MultipleActiveResultSets=True;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;"); + using SqlConnection connection = new SqlConnection(_connectionString); connection.Open(); using SqlCommand command = new SqlCommand("TRUNCATE TABLE PartAvailability", connection); diff --git a/PartSource.Automation/Jobs/ExecuteSsisPackages.cs b/PartSource.Automation/Jobs/ExecuteSsisPackages.cs index c6f30cc..c287910 100644 --- a/PartSource.Automation/Jobs/ExecuteSsisPackages.cs +++ b/PartSource.Automation/Jobs/ExecuteSsisPackages.cs @@ -17,7 +17,7 @@ namespace PartSource.Automation.Jobs private readonly ILogger _logger; // TODO: set from config - private readonly string[] _ssisPackages = {"Parts Availability" }; + private readonly string[] _ssisPackages = {"Parts Price" }; public ExecuteSsisPackages(EmailService emailService, IConfiguration configuration, SsisService ssisService, ILogger logger) { @@ -36,7 +36,7 @@ namespace PartSource.Automation.Jobs { try { - // _ftpService.Download($"{package}.txt"); + _ftpService.Download($"{package}.txt"); _ssisService.Execute($"{package}.dtsx"); _logger.LogInformation($"Execution of SSIS package {package} completed successfully."); diff --git a/PartSource.Automation/Jobs/POC/PartialInventoryUpdate.cs b/PartSource.Automation/Jobs/PartialInventoryUpdate.cs similarity index 89% rename from PartSource.Automation/Jobs/POC/PartialInventoryUpdate.cs rename to PartSource.Automation/Jobs/PartialInventoryUpdate.cs index ff6286e..89ade32 100644 --- a/PartSource.Automation/Jobs/POC/PartialInventoryUpdate.cs +++ b/PartSource.Automation/Jobs/PartialInventoryUpdate.cs @@ -14,18 +14,21 @@ using PartSource.Automation.Models.Ftp; using PartSource.Automation.Services; using Ratermania.Automation.Interfaces; -namespace PartSource.Automation.Jobs.POC +namespace PartSource.Automation.Jobs { public class PartialInventoryUpdate : IAutomationJob { private readonly FtpService _ftpService; private readonly ILogger _logger; + private readonly string _connectionString; public PartialInventoryUpdate(IConfiguration configuration, ILogger logger) { FtpConfiguration ftpConfiguration = configuration.GetSection("FtpServers:AutomationConfiguration").Get(); _ftpService = new FtpService(ftpConfiguration); + _connectionString = _connectionString = configuration.GetConnectionString("PartSourceDatabase"); + _logger = logger; } @@ -46,7 +49,7 @@ namespace PartSource.Automation.Jobs.POC string file = _ftpService.Download($"{lastUploadedFile.Filename}"); - using SqlConnection connection = new SqlConnection("Server=tcp:ps-whi.database.windows.net,1433;Initial Catalog=ps-whi-test;Persist Security Info=False;User ID=ps-whi;Password=9-^*N5dw!6:|.5Q;MultipleActiveResultSets=True;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;"); + using SqlConnection connection = new SqlConnection(_connectionString); connection.Open(); using StreamReader reader = new StreamReader(file); diff --git a/PartSource.Automation/Program.cs b/PartSource.Automation/Program.cs index 9b3b2a3..2b276df 100644 --- a/PartSource.Automation/Program.cs +++ b/PartSource.Automation/Program.cs @@ -4,7 +4,6 @@ using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Logging; using PartSource.Automation.Jobs; -using PartSource.Automation.Jobs.POC; using PartSource.Automation.Services; using PartSource.Data.AutoMapper; using PartSource.Data.Contexts; @@ -75,28 +74,37 @@ namespace PartSource.Automation .AddAutomation(options => { - options.HasBaseInterval(new TimeSpan(0, 5, 0)) - .HasMaxFailures(1) - //.HasJob(options => options.HasInterval(new TimeSpan(7, 0, 0, 0))); - // - //.HasJob(options => options.HasInterval(new TimeSpan(24, 0, 0))) - // .HasJob(options => options.HasInterval(new TimeSpan(24, 0, 0))); - //.HasJob(options => options.HasInterval(new TimeSpan(24, 0, 0)) - //.HasDependency() - //.HasJob(options => options.HasInterval(new TimeSpan(24, 0, 0))); - //.HasJob(options => options.HasInterval(new TimeSpan(24, 0, 0)) - // .HasDependency() - // .HasDependency() - // .HasDependency() - // .StartsAt(DateTime.Today.AddHours(8)) - //) ; - //.HasJob(options => options.HasInterval(new TimeSpan(24, 0, 0)) - // .StartsAt(DateTime.Parse("2021-04-01 08:00:00")) - //) - .HasJob(options => - options.HasInterval(new TimeSpan(1, 0, 0)) - .StartsAt(DateTime.Today.AddHours(-27)) - ) + options.HasBaseInterval(new TimeSpan(0, 5, 0)) + .HasMaxFailures(1) + //.HasJob(options => options.HasInterval(new TimeSpan(7, 0, 0, 0))); + // + //.HasJob(options => options.HasInterval(new TimeSpan(24, 0, 0))) + // .HasJob(options => options.HasInterval(new TimeSpan(24, 0, 0))); + //.HasJob(options => options.HasInterval(new TimeSpan(24, 0, 0)) + //.HasDependency() + //.HasJob(options => options.HasInterval(new TimeSpan(24, 0, 0))); + //.HasJob(options => options.HasInterval(new TimeSpan(24, 0, 0)) + // .HasDependency() + // .HasDependency() + // .HasDependency() + // .StartsAt(DateTime.Today.AddHours(8)) + //) ; + //.HasJob(options => options.HasInterval(new TimeSpan(24, 0, 0)) + // .StartsAt(DateTime.Parse("2021-04-01 08:00:00")) + //) + .HasJob(options => + options.HasInterval(new TimeSpan(24, 0, 0)) + .StartsAt(DateTime.Today.AddHours(-24)) + ) + .HasJob(options => + options.HasInterval(new TimeSpan(24, 0, 0)) + .StartsAt(DateTime.Today.AddHours(-22)) + .HasDependency() + ) + .HasJob(options => + options.HasInterval(new TimeSpan(1, 0, 0)) + .StartsAt(DateTime.Today.AddHours(-27)) + ) .HasJob(options => options.HasInterval(new TimeSpan(1, 0, 0)) .StartsAt(DateTime.Today.AddHours(-27).AddMinutes(30))