using StructureHelperCommon.Infrastructures.Exceptions; using StructureHelperCommon.Infrastructures.Interfaces; using StructureHelperCommon.Services; namespace StructureHelperLogics.Models.BeamShears { public class BeamShearCalculatorUpdateStrategy : IUpdateStrategy { private IUpdateStrategy? inputDataUpdateStrategy; public void Update(IBeamShearCalculator targetObject, IBeamShearCalculator sourceObject) { CheckObject.IsNull(sourceObject, ErrorStrings.SourceObject); CheckObject.IsNull(targetObject, ErrorStrings.TargetObject); if (ReferenceEquals(targetObject, sourceObject)) { return; }; targetObject.Name = sourceObject.Name; targetObject.InputData ??= new BeamShearCalculatorInputData(Guid.NewGuid()); InitializeStrategies(); inputDataUpdateStrategy.Update(targetObject.InputData, sourceObject.InputData); } private void InitializeStrategies() { inputDataUpdateStrategy ??= new BeamShearCalculatorInputDataUpdateStrategy(); } } }