Files
StructureHelper/StructureHelperCommon/Models/Forces/BeamShearActions/BeamShearActionUpdateStrategy.cs
2025-11-16 21:03:57 +05:00

28 lines
1.2 KiB
C#

using StructureHelperCommon.Infrastructures.Interfaces;
using StructureHelperCommon.Services;
namespace StructureHelperCommon.Models.Forces.BeamShearActions
{
public class BeamShearActionUpdateStrategy : IUpdateStrategy<IBeamShearAction>
{
private IUpdateStrategy<IBeamShearAxisAction> axisActionUpdateStrategy;
public void Update(IBeamShearAction targetObject, IBeamShearAction sourceObject)
{
CheckObject.ThrowIfNull(targetObject);
CheckObject.ThrowIfNull(sourceObject);
if (ReferenceEquals(targetObject, sourceObject)) { return; }
targetObject.Name = sourceObject.Name;
targetObject.ExternalForce = sourceObject.ExternalForce.Clone() as IFactoredForceTuple;
InitializeStrategies();
CheckObject.ThrowIfNull(sourceObject.SupportAction);
CheckObject.ThrowIfNull(targetObject.SupportAction);
axisActionUpdateStrategy.Update(targetObject.SupportAction, sourceObject.SupportAction);
}
private void InitializeStrategies()
{
axisActionUpdateStrategy ??= new BeamShearAxisActionUpdateStrategy();
}
}
}