using Microsoft.Extensions.DependencyInjection; namespace OwnerNumberMigration.ValueParsing; public class ParsingStrategyFactory : IParsingStrategyFactory { private readonly IServiceProvider _services; public ParsingStrategyFactory(IServiceProvider services) { _services = services; } public IValueParsingStrategy CreateParsingStrategy(string attribute) => attribute switch { "PersonNumber" => (IValueParsingStrategy)_services.GetRequiredService(), "PersonNumbers" => (IValueParsingStrategy)_services.GetRequiredService(), "OrganizationNumber" => (IValueParsingStrategy)_services.GetRequiredService(), "OrganizationNumbers" => (IValueParsingStrategy)_services.GetRequiredService(), "AccountNumber" => (IValueParsingStrategy)_services.GetRequiredService(), _ => throw new NotImplementedException() }; }