Files
StructureHelper/StructureHelperLogics/Models/BeamShears/Logics/CloneStrategies/BeamShearCloneStrategy.cs
2025-06-01 21:58:06 +05:00

32 lines
998 B
C#

using StructureHelperCommon.Infrastructures.Interfaces;
namespace StructureHelperLogics.Models.BeamShears
{
public class BeamShearCloneStrategy : ICloneStrategy<IBeamShear>
{
private ICloningStrategy cloningStrategy;
private ICloneStrategy<IBeamShearRepository> cloneStrategy;
private BeamShear beamShear;
public BeamShearCloneStrategy(ICloningStrategy cloningStrategy)
{
this.cloningStrategy = cloningStrategy;
}
public IBeamShear GetClone(IBeamShear sourceObject)
{
InitializeStrategies();
beamShear = new(Guid.NewGuid())
{
Repository = cloneStrategy.GetClone(sourceObject.Repository)
};
return beamShear;
}
private void InitializeStrategies()
{
cloningStrategy = new DeepCloningStrategy();
cloneStrategy ??= new BeamShearRepositoryCloneStrategy(cloningStrategy);
}
}
}