using StructureHelperCommon.Infrastructures.Interfaces; using StructureHelperCommon.Models.Materials; using StructureHelperLogics.Models.Materials; namespace DataAccess.DTOs { public class HelperMaterialToDTOStrategyContainer : IHelperMaterialToDTOStrategyContainer { private LibMaterialToDTOConvertStrategy concreteConvertStrategy; private LibMaterialToDTOConvertStrategy reinforcementConvertStrategy; private LibMaterialToDTOConvertStrategy steelConvertStrategy; private IConvertStrategy elasticConvertStrategy; private IConvertStrategy frMaterialConvertStrategy; private IUpdateStrategy safetyFactorUpdateStrategy = new HelperMaterialDTOSafetyFactorUpdateStrategy(new MaterialSafetyFactorToDTOLogic()); public LibMaterialToDTOConvertStrategy ConcreteConvertStrategy => concreteConvertStrategy ??= new ConcreteLibMaterialToDTOConvertStrategy(); public IConvertStrategy ElasticConvertStrategy => elasticConvertStrategy ??= new ElasticMaterialToDTOConvertStrategy(); public IConvertStrategy FrMaterialConvertStrategy => frMaterialConvertStrategy ??= new FRMaterialToDTOConvertStrategy(); public LibMaterialToDTOConvertStrategy ReinforcementConvertStrategy => reinforcementConvertStrategy ??= new ReinforcementLibMaterialToDTOConvertStrategy(); public IUpdateStrategy SafetyFactorUpdateStrategy => safetyFactorUpdateStrategy ??= new HelperMaterialDTOSafetyFactorUpdateStrategy(new MaterialSafetyFactorToDTOLogic()); public LibMaterialToDTOConvertStrategy SteelConvertStrategy => steelConvertStrategy ??= new SteelLibMaterialToDTOConvertStrategy(); } }