using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using PartSource.Automation.Jobs; using PartSource.Automation.Jobs.Interfaces; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace PartSource.Automation.Factories { public class JobFactory { private readonly IServiceProvider _serviceProvider; public JobFactory(IServiceProvider serviceProvider) { _serviceProvider = serviceProvider; } public IAutomationJob Build(string jobName) { switch (jobName) { case nameof(AddAndUpdateProducts): return _serviceProvider.GetService(); case nameof(DeleteProducts): return _serviceProvider.GetService(); case nameof(StatusCheck): return _serviceProvider.GetService(); //case nameof(TestJob): // return new TestJob(); case nameof(UpdateFitment): return _serviceProvider.GetService(); //case nameof(UpdatePricing): // return _serviceProvider.GetService(); case nameof(UpdatePositioning): return _serviceProvider.GetService(); case nameof(ExecuteSsisPackages): return _serviceProvider.GetService(); default: throw new Exception($"The job {jobName} could not be found."); } } } }