From ce97586d2bb664b034d6d38340748ab77ed6cb8b Mon Sep 17 00:00:00 2001 From: Evgeny Redikultsev Date: Mon, 24 Jul 2023 21:36:23 +0500 Subject: [PATCH] Force tuple update strategy was fixed --- .../Models/Forces/Logics/ForceTupleUpdateStrategy.cs | 9 ++++----- StructureHelperCommon/Models/Forces/StrainTuple.cs | 9 ++++++--- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/StructureHelperCommon/Models/Forces/Logics/ForceTupleUpdateStrategy.cs b/StructureHelperCommon/Models/Forces/Logics/ForceTupleUpdateStrategy.cs index bde548b..650e7db 100644 --- a/StructureHelperCommon/Models/Forces/Logics/ForceTupleUpdateStrategy.cs +++ b/StructureHelperCommon/Models/Forces/Logics/ForceTupleUpdateStrategy.cs @@ -14,14 +14,13 @@ namespace StructureHelperCommon.Models.Forces public void Update(IForceTuple targetObject, IForceTuple sourceObject) { if (ReferenceEquals(targetObject, sourceObject)) { return; } - CheckObject.IsNull(targetObject, ": target object "); - CheckObject.IsNull(sourceObject, ": source object "); + CheckObject.CompareTypes(targetObject, sourceObject); targetObject.Mx = sourceObject.Mx; targetObject.My = sourceObject.My; - targetObject.Nz = targetObject.Nz; - targetObject.Qx = targetObject.Qx; - targetObject.Qy = targetObject.Qy; + targetObject.Nz = sourceObject.Nz; + targetObject.Qx = sourceObject.Qx; + targetObject.Qy = sourceObject.Qy; targetObject.Mz = sourceObject.Mz; } } diff --git a/StructureHelperCommon/Models/Forces/StrainTuple.cs b/StructureHelperCommon/Models/Forces/StrainTuple.cs index 930c864..40ba0fd 100644 --- a/StructureHelperCommon/Models/Forces/StrainTuple.cs +++ b/StructureHelperCommon/Models/Forces/StrainTuple.cs @@ -1,10 +1,12 @@ -using StructureHelperCommon.Services.Forces; +using StructureHelperCommon.Infrastructures.Interfaces; +using StructureHelperCommon.Services.Forces; namespace StructureHelperCommon.Models.Forces { /// public class StrainTuple : IForceTuple { + private readonly IUpdateStrategy updateStrategy = new ForceTupleUpdateStrategy(); /// public double Mx { get; set; } /// @@ -21,8 +23,9 @@ namespace StructureHelperCommon.Models.Forces /// public object Clone() { - StrainTuple forceTuple = new StrainTuple() { Mx = Mx, My = My, Nz = Nz, Qx = Qx, Qy = Qy, Mz = Mz }; - return forceTuple; + var newItem = new StrainTuple(); + updateStrategy.Update(newItem, this); + return newItem; } public static StrainTuple operator +(StrainTuple first) => first; public static StrainTuple operator +(StrainTuple first, ForceTuple second)