Fix cloninng BeamShearAction

This commit is contained in:
Evgeny Redikultsev
2025-05-25 16:07:55 +05:00
parent f127594b5c
commit add2ed8777
31 changed files with 290 additions and 80 deletions

View File

@@ -0,0 +1,40 @@
using StructureHelperCommon.Infrastructures.Interfaces;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace StructureHelperCommon.Models.Forces.BeamShearActions
{
internal class BeamShearAxisActionCloneStrategy : ICloneStrategy<IBeamShearAxisAction>
{
private ICloningStrategy cloningStrategy;
private IUpdateStrategy<IBeamShearAxisAction> updateStrategy;
public BeamShearAxisActionCloneStrategy(ICloningStrategy cloningStrategy)
{
this.cloningStrategy = cloningStrategy;
}
private BeamShearAxisAction targetObject;
public IBeamShearAxisAction GetClone(IBeamShearAxisAction sourceObject)
{
InitializeStrategies();
targetObject = new(Guid.NewGuid());
updateStrategy.Update(targetObject, sourceObject);
targetObject.ShearLoads.Clear();
foreach (var shearLoad in sourceObject.ShearLoads)
{
targetObject.ShearLoads.Add(cloningStrategy.Clone(shearLoad));
}
return targetObject;
}
private void InitializeStrategies()
{
updateStrategy ??= new BeamShearAxisActionUpdateStrategy();
}
}
}