23 lines
1.0 KiB
C#
23 lines
1.0 KiB
C#
using Microsoft.Extensions.DependencyInjection;
|
|
|
|
namespace OwnerNumberMigration.ValueParsing;
|
|
|
|
public class ParsingStrategyFactory : IParsingStrategyFactory
|
|
{
|
|
private readonly IServiceProvider _services;
|
|
|
|
public ParsingStrategyFactory(IServiceProvider services)
|
|
{
|
|
_services = services;
|
|
}
|
|
|
|
public IValueParsingStrategy<T> CreateParsingStrategy<T>(string attribute) => attribute switch
|
|
{
|
|
"PersonNumber" => (IValueParsingStrategy<T>)_services.GetRequiredService<SingleValueArrayStrategy>(),
|
|
"PersonNumbers" => (IValueParsingStrategy<T>)_services.GetRequiredService<CommaStringArrayStrategy>(),
|
|
"OrganizationNumber" => (IValueParsingStrategy<T>)_services.GetRequiredService<SingleValueArrayStrategy>(),
|
|
"OrganizationNumbers" => (IValueParsingStrategy<T>)_services.GetRequiredService<CommaStringArrayStrategy>(),
|
|
"AccountNumber" => (IValueParsingStrategy<T>)_services.GetRequiredService<SingleValueStrategy>(),
|
|
_ => throw new NotImplementedException()
|
|
};
|
|
} |