using StructureHelperCommon.Infrastructures.Interfaces; using StructureHelperCommon.Models.Forces; using StructureHelperLogics.NdmCalculations.Analyses.Curvatures; namespace DataAccess.DTOs { public class DeflectionFactorToDTOConvertStrategy : ConvertStrategy { private IUpdateStrategy updateStrategy; private IConvertStrategy forceTupleConvertStrategy; private IUpdateStrategy UpdateStrategy => updateStrategy??= new DeflectionFactorUpdateStrategy() { UpdateChildren = false}; private IConvertStrategy ForceTupleConvertStrategy => forceTupleConvertStrategy ??= new ForceTupleToDTOConvertStrategy(ReferenceDictionary, TraceLogger); public DeflectionFactorToDTOConvertStrategy(IBaseConvertStrategy baseConvertStrategy) : base(baseConvertStrategy) { } public override DeflectionFactorDTO GetNewItem(IDeflectionFactor source) { NewItem = new(source.Id); UpdateStrategy.Update(NewItem, source); NewItem.DeflectionFactors = ForceTupleConvertStrategy.Convert(source.DeflectionFactors); NewItem.MaxDeflections = ForceTupleConvertStrategy.Convert(source.MaxDeflections); return NewItem; } } }