Files
Partsource/PartSource.Automation/Factories/JobFactory.cs

56 lines
1.4 KiB
C#

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<AddAndUpdateProducts>();
case nameof(DeleteProducts):
return _serviceProvider.GetService<DeleteProducts>();
case nameof(StatusCheck):
return _serviceProvider.GetService<StatusCheck>();
//case nameof(TestJob):
// return new TestJob();
case nameof(UpdateFitment):
return _serviceProvider.GetService<UpdateFitment>();
//case nameof(UpdatePricing):
// return _serviceProvider.GetService<UpdatePricing>();
case nameof(UpdatePositioning):
return _serviceProvider.GetService<UpdatePositioning>();
case nameof(ExecuteSsisPackages):
return _serviceProvider.GetService<ExecuteSsisPackages>();
default:
throw new Exception($"The job {jobName} could not be found.");
}
}
}
}