21 lines
754 B
C#
21 lines
754 B
C#
|
namespace RhSolutions.Services;
|
|||
|
|
|||
|
public class FittingsCalculatorFactory
|
|||
|
{
|
|||
|
private readonly IServiceProvider _serviceProvider;
|
|||
|
|
|||
|
public FittingsCalculatorFactory(IServiceProvider serviceProvider)
|
|||
|
{
|
|||
|
_serviceProvider = serviceProvider;
|
|||
|
}
|
|||
|
|
|||
|
public IFittingsCalculator GetFittingsCalculator(string calculatorName)
|
|||
|
{
|
|||
|
return calculatorName switch
|
|||
|
{
|
|||
|
"Sleeves" => (IFittingsCalculator)_serviceProvider.GetService(typeof(SleevesCalculator)),
|
|||
|
"Couplings" => (IFittingsCalculator)_serviceProvider.GetService(typeof(CouplingsCalculator)),
|
|||
|
_ => throw new ArgumentException($"Незвестный интерфейс {nameof(IFittingsCalculator)}: {calculatorName}")
|
|||
|
};
|
|||
|
}
|
|||
|
}
|