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

39 lines
1.3 KiB
C#

using StructureHelperCommon.Infrastructures.Interfaces;
using StructureHelperCommon.Services;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace StructureHelperCommon.Models.Forces.Logics
{
public class DesignForceTupleUpdateStrategy : IUpdateStrategy<IDesignForceTuple>
{
private IUpdateStrategy<IForceTuple> forceTupleUpdateStrategy;
public DesignForceTupleUpdateStrategy(IUpdateStrategy<IForceTuple> forceTupleUpdateStrategy)
{
this.forceTupleUpdateStrategy = forceTupleUpdateStrategy;
}
public DesignForceTupleUpdateStrategy() : this (new ForceTupleUpdateStrategy())
{
}
public void Update(IDesignForceTuple targetObject, IDesignForceTuple sourceObject)
{
CheckObject.ThrowIfNull(targetObject);
CheckObject.ThrowIfNull(sourceObject);
if (ReferenceEquals(targetObject, sourceObject)) { return; }
targetObject.LimitState = sourceObject.LimitState;
targetObject.CalcTerm = sourceObject.CalcTerm;
if (sourceObject.ForceTuple is not null)
{
forceTupleUpdateStrategy.Update(targetObject.ForceTuple, sourceObject.ForceTuple);
}
}
}
}