using StructureHelperCommon.Infrastructures.Interfaces; using StructureHelperCommon.Models.Materials; using StructureHelperLogics.Models.Materials; namespace DataAccess.DTOs { public class HelperMaterialFromDTOStrategyContainer : IHelperMaterialFromDTOStrategyContainer { private IConvertStrategy concreteConvertStrategy; private IConvertStrategy reinforcementConvertStrategy; private IConvertStrategy elasticConvertStrategy; private IConvertStrategy frConvertStrategy; private IUpdateStrategy safetyFactorUpdateStrategy; private IConvertStrategy steelConvertStrategy; public IConvertStrategy ConcreteConvertStrategy => concreteConvertStrategy ??= new ConcreteLibMaterialFromDTOConvertStrategy(); public IConvertStrategy ElasticConvertStrategy => elasticConvertStrategy ??= new ElasticMaterialFromDTOConvertStrategy(); public IConvertStrategy FrConvertStrategy => frConvertStrategy ??= new FRMaterialFromDTOConvertStrategy(); public IConvertStrategy ReinforcementConvertStrategy => reinforcementConvertStrategy ??= new ReinforcementLibMaterialFromDTOConvertStrategy(); public IUpdateStrategy SafetyFactorUpdateStrategy => safetyFactorUpdateStrategy ??= new HelperMaterialDTOSafetyFactorUpdateStrategy(new MaterialSafetyFactorsFromDTOLogic()); public IConvertStrategy SteelConvertStrategy => steelConvertStrategy ??= new SteelLibMaterialFromDTOConvertStrategy(); } }