Files
monorepo/LCU.API.Internal.Document/OwnerNumberMigration/ValueParsing/ParsingStrategyFactory.cs
T
2026-03-13 09:11:35 -05:00

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()
};
}