From ba609091aa5ea22dfb7b0acd4cd63c2735b508b5 Mon Sep 17 00:00:00 2001 From: Evgeny Redikultsev Date: Fri, 11 Nov 2022 21:29:24 +0500 Subject: [PATCH] Headmaterial was repaired --- Infrastructure/UI/DataContexts/Point.cs | 5 +- .../UI/DataContexts/PrimitiveBase.cs | 4 - Infrastructure/UI/DataContexts/Rectangle.cs | 6 +- .../Infrastructures/Enums}/CalcTerms.cs | 2 +- .../Infrastructures/Enums}/LimitStates.cs | 2 +- .../StructureHelperCommon.csproj | 2 + .../CalculationProperty.cs | 5 +- .../ICalculationProperty.cs | 5 +- .../Models/Materials/ElasticMaterial.cs | 14 ++- .../Models/Materials/HeadMaterial.cs | 12 +- .../Models/Materials/IHeadMaterial.cs | 6 +- .../Models/Materials/IHelperMaterial.cs | 3 +- .../Models/Materials/ILibMaterial.cs | 3 +- .../Models/Materials/IPrimitiveMaterial.cs | 13 -- .../Models/Materials/LibMaterial.cs | 90 +++++++------ .../Models/Materials/PrimitiveMaterial.cs | 22 ---- .../Primitives/INdmPrimitive.cs | 3 +- .../Primitives/NdmPrimitive.cs | 10 +- .../Triangulations/ITriangulationOptions.cs | 2 +- .../Triangulations/Triangulation.cs | 119 +++++++++--------- .../Triangulations/TriangulationOptions.cs | 2 +- .../Services/CalculationService.cs | 2 +- .../StructureHelperLogics.csproj | 4 + .../CalculationPropertyView.xaml.cs | 13 +- Windows/MainWindow/MainModel.cs | 1 - .../CalculationPropertyViewModel.cs | 2 +- 26 files changed, 165 insertions(+), 187 deletions(-) rename {StructureHelperLogics/Infrastructures/CommonEnums => StructureHelperCommon/Infrastructures/Enums}/CalcTerms.cs (55%) rename {StructureHelperLogics/Infrastructures/CommonEnums => StructureHelperCommon/Infrastructures/Enums}/LimitStates.cs (64%) delete mode 100644 StructureHelperLogics/Models/Materials/IPrimitiveMaterial.cs delete mode 100644 StructureHelperLogics/Models/Materials/PrimitiveMaterial.cs diff --git a/Infrastructure/UI/DataContexts/Point.cs b/Infrastructure/UI/DataContexts/Point.cs index 5216e57..2936a88 100644 --- a/Infrastructure/UI/DataContexts/Point.cs +++ b/Infrastructure/UI/DataContexts/Point.cs @@ -53,9 +53,8 @@ namespace StructureHelper.Infrastructure.UI.DataContexts string materialName = MaterialName; ICenter center = new Center { X = CenterX, Y = CenterY }; IShape shape = new StructureHelperCommon.Models.Shapes.Point { Area = this.Area }; - IPrimitiveMaterial primitiveMaterial = GetPrimitiveMaterial(); - //IPrimitiveMaterial primitiveMaterial = new PrimitiveMaterial { MaterialType = GetMaterialTypes(), ClassName = materialName, Strength = Material.DesignCompressiveStrength }; - INdmPrimitive ndmPrimitive = new NdmPrimitive { Center = center, Shape = shape, PrimitiveMaterial = primitiveMaterial, + INdmPrimitive ndmPrimitive = new NdmPrimitive(HeadMaterial) + { Center = center, Shape = shape, PrestrainKx = PrestrainKx, PrestrainKy = PrestrainKy, PrestrainEpsZ = PrestrainEpsZ diff --git a/Infrastructure/UI/DataContexts/PrimitiveBase.cs b/Infrastructure/UI/DataContexts/PrimitiveBase.cs index d538628..2d82ceb 100644 --- a/Infrastructure/UI/DataContexts/PrimitiveBase.cs +++ b/Infrastructure/UI/DataContexts/PrimitiveBase.cs @@ -369,9 +369,5 @@ namespace StructureHelper.Infrastructure.UI.DataContexts else { throw new StructureHelperException(ErrorStrings.MaterialTypeIsUnknown); } return materialTypes; } - public IPrimitiveMaterial GetPrimitiveMaterial() - { - return HeadMaterial.HelperMaterial.GetPrimitiveMaterial(); - } } } diff --git a/Infrastructure/UI/DataContexts/Rectangle.cs b/Infrastructure/UI/DataContexts/Rectangle.cs index 5ddc500..d90682d 100644 --- a/Infrastructure/UI/DataContexts/Rectangle.cs +++ b/Infrastructure/UI/DataContexts/Rectangle.cs @@ -49,10 +49,8 @@ namespace StructureHelper.Infrastructure.UI.DataContexts double centerY = CenterY; ICenter center = new Center { X = centerX, Y = centerY }; IShape shape = new StructureHelperCommon.Models.Shapes.Rectangle { Height = height, Width = width, Angle = 0 }; - IPrimitiveMaterial primitiveMaterial = GetPrimitiveMaterial(); - //IPrimitiveMaterial primitiveMaterial = new PrimitiveMaterial { MaterialType = GetMaterialTypes(), ClassName = materialName, Strength = Material.DesignCompressiveStrength }; - INdmPrimitive ndmPrimitive = new NdmPrimitive - { Center = center, Shape = shape, PrimitiveMaterial = primitiveMaterial, + INdmPrimitive ndmPrimitive = new NdmPrimitive(HeadMaterial) + { Center = center, Shape = shape, NdmMaxSize = MaxElementSize, NdmMinDivision = MinElementDivision, PrestrainKx = PrestrainKx, PrestrainKy = PrestrainKy, diff --git a/StructureHelperLogics/Infrastructures/CommonEnums/CalcTerms.cs b/StructureHelperCommon/Infrastructures/Enums/CalcTerms.cs similarity index 55% rename from StructureHelperLogics/Infrastructures/CommonEnums/CalcTerms.cs rename to StructureHelperCommon/Infrastructures/Enums/CalcTerms.cs index 19bec6b..f44ee3f 100644 --- a/StructureHelperLogics/Infrastructures/CommonEnums/CalcTerms.cs +++ b/StructureHelperCommon/Infrastructures/Enums/CalcTerms.cs @@ -1,4 +1,4 @@ -namespace StructureHelperLogics.Infrastructures.CommonEnums +namespace StructureHelperCommon.Infrastructures.Enums { public enum CalcTerms { diff --git a/StructureHelperLogics/Infrastructures/CommonEnums/LimitStates.cs b/StructureHelperCommon/Infrastructures/Enums/LimitStates.cs similarity index 64% rename from StructureHelperLogics/Infrastructures/CommonEnums/LimitStates.cs rename to StructureHelperCommon/Infrastructures/Enums/LimitStates.cs index fb53187..8393ba8 100644 --- a/StructureHelperLogics/Infrastructures/CommonEnums/LimitStates.cs +++ b/StructureHelperCommon/Infrastructures/Enums/LimitStates.cs @@ -1,4 +1,4 @@ -namespace StructureHelperLogics.Infrastructures.CommonEnums +namespace StructureHelperCommon.Infrastructures.Enums { public enum LimitStates { diff --git a/StructureHelperCommon/StructureHelperCommon.csproj b/StructureHelperCommon/StructureHelperCommon.csproj index 3fab5e8..7c57c3a 100644 --- a/StructureHelperCommon/StructureHelperCommon.csproj +++ b/StructureHelperCommon/StructureHelperCommon.csproj @@ -46,7 +46,9 @@ + + diff --git a/StructureHelperLogics/Models/Calculations/CalculationProperties/CalculationProperty.cs b/StructureHelperLogics/Models/Calculations/CalculationProperties/CalculationProperty.cs index dc18378..838abcb 100644 --- a/StructureHelperLogics/Models/Calculations/CalculationProperties/CalculationProperty.cs +++ b/StructureHelperLogics/Models/Calculations/CalculationProperties/CalculationProperty.cs @@ -1,8 +1,5 @@ -using LoaderCalculator.Data.Matrix; -using StructureHelperLogics.Infrastructures.CommonEnums; -using System; +using StructureHelperCommon.Infrastructures.Enums; using System.Collections.Generic; -using System.Text; namespace StructureHelperLogics.Models.Calculations.CalculationProperties { diff --git a/StructureHelperLogics/Models/Calculations/CalculationProperties/ICalculationProperty.cs b/StructureHelperLogics/Models/Calculations/CalculationProperties/ICalculationProperty.cs index 15ef710..3530460 100644 --- a/StructureHelperLogics/Models/Calculations/CalculationProperties/ICalculationProperty.cs +++ b/StructureHelperLogics/Models/Calculations/CalculationProperties/ICalculationProperty.cs @@ -1,8 +1,5 @@ -using LoaderCalculator.Data.Matrix; -using StructureHelperLogics.Infrastructures.CommonEnums; -using System; +using StructureHelperCommon.Infrastructures.Enums; using System.Collections.Generic; -using System.Text; namespace StructureHelperLogics.Models.Calculations.CalculationProperties { diff --git a/StructureHelperLogics/Models/Materials/ElasticMaterial.cs b/StructureHelperLogics/Models/Materials/ElasticMaterial.cs index fa7e353..f7b4e8d 100644 --- a/StructureHelperLogics/Models/Materials/ElasticMaterial.cs +++ b/StructureHelperLogics/Models/Materials/ElasticMaterial.cs @@ -1,4 +1,6 @@ -using StructureHelperLogics.Models.Materials; +using LoaderCalculator.Data.Materials; +using StructureHelperCommon.Infrastructures.Enums; +using StructureHelperLogics.Models.Materials; using System; using System.Collections.Generic; using System.Linq; @@ -11,14 +13,14 @@ namespace StructureHelperLogics.Models.Materials { public double Modulus { get; set; } + public IMaterial GetLoaderMaterial(LimitStates limitState, CalcTerms calcTerm) + { + throw new NotImplementedException(); + } + public object Clone() { return new ElasticMaterial() { Modulus = Modulus }; } - - public IPrimitiveMaterial GetPrimitiveMaterial() - { - throw new NotImplementedException(); - } } } diff --git a/StructureHelperLogics/Models/Materials/HeadMaterial.cs b/StructureHelperLogics/Models/Materials/HeadMaterial.cs index 4a4b349..a622c20 100644 --- a/StructureHelperLogics/Models/Materials/HeadMaterial.cs +++ b/StructureHelperLogics/Models/Materials/HeadMaterial.cs @@ -6,6 +6,8 @@ using System.Threading; using System.Threading.Tasks; using System.Windows; using System.Windows.Media; +using LoaderCalculator.Data.Materials; +using StructureHelperCommon.Infrastructures.Enums; using StructureHelperCommon.Services.ColorServices; using StructureHelperLogics.Models.Materials; @@ -13,17 +15,22 @@ namespace StructureHelper.Models.Materials { public class HeadMaterial : IHeadMaterial { + public string Id { get; } public string Name { get; set; } public Color Color { get; set; } public IHelperMaterial HelperMaterial {get; set;} - //public MaterialDefinitionBase Material { get; set; } - public HeadMaterial() { + Id = Convert.ToString(Guid.NewGuid()); Color = ColorProcessor.GetRandomColor(); } + public IMaterial GetLoaderMaterial(LimitStates limitState, CalcTerms calcTerm) + { + return HelperMaterial.GetLoaderMaterial(limitState, calcTerm); + } + public object Clone() { IHeadMaterial material = new HeadMaterial @@ -34,5 +41,6 @@ namespace StructureHelper.Models.Materials }; return material; } + } } diff --git a/StructureHelperLogics/Models/Materials/IHeadMaterial.cs b/StructureHelperLogics/Models/Materials/IHeadMaterial.cs index 830996f..fb1b017 100644 --- a/StructureHelperLogics/Models/Materials/IHeadMaterial.cs +++ b/StructureHelperLogics/Models/Materials/IHeadMaterial.cs @@ -1,4 +1,6 @@ -using StructureHelperLogics.Models.Materials; +using LoaderCalculator.Data.Materials; +using StructureHelperCommon.Infrastructures.Enums; +using StructureHelperLogics.Models.Materials; using System; using System.Collections.Generic; using System.Linq; @@ -10,9 +12,11 @@ namespace StructureHelper.Models.Materials { public interface IHeadMaterial : ICloneable { + string Id { get; } string Name { get; set; } Color Color { get; set; } IHelperMaterial HelperMaterial { get; set; } //MaterialDefinitionBase Material { get; set; } + IMaterial GetLoaderMaterial(LimitStates limitState, CalcTerms calcTerm); } } diff --git a/StructureHelperLogics/Models/Materials/IHelperMaterial.cs b/StructureHelperLogics/Models/Materials/IHelperMaterial.cs index f040833..a119393 100644 --- a/StructureHelperLogics/Models/Materials/IHelperMaterial.cs +++ b/StructureHelperLogics/Models/Materials/IHelperMaterial.cs @@ -1,4 +1,5 @@ using LoaderCalculator.Data.Materials; +using StructureHelperCommon.Infrastructures.Enums; using StructureHelperLogics.Models.Materials; using System; using System.Collections.Generic; @@ -8,6 +9,6 @@ namespace StructureHelperLogics.Models.Materials { public interface IHelperMaterial : ICloneable { - IPrimitiveMaterial GetPrimitiveMaterial(); + IMaterial GetLoaderMaterial(LimitStates limitState, CalcTerms calcTerm); } } diff --git a/StructureHelperLogics/Models/Materials/ILibMaterial.cs b/StructureHelperLogics/Models/Materials/ILibMaterial.cs index 179e6e4..cfded3a 100644 --- a/StructureHelperLogics/Models/Materials/ILibMaterial.cs +++ b/StructureHelperLogics/Models/Materials/ILibMaterial.cs @@ -1,6 +1,5 @@ using StructureHelperCommon.Infrastructures.Enums; using StructureHelperLogics.Models.Materials; -using StructureHelperLogics.Infrastructures.CommonEnums; using System; using System.Collections.Generic; using System.Text; @@ -10,7 +9,7 @@ namespace StructureHelperLogics.Models.Materials public interface ILibMaterial : IHelperMaterial { MaterialTypes MaterialType { get; set; } - CodeTypes CodeType { get; set; } + //CodeTypes CodeType { get; set; } string Name { get; set; } double MainStrength { get; set; } } diff --git a/StructureHelperLogics/Models/Materials/IPrimitiveMaterial.cs b/StructureHelperLogics/Models/Materials/IPrimitiveMaterial.cs deleted file mode 100644 index 76a6355..0000000 --- a/StructureHelperLogics/Models/Materials/IPrimitiveMaterial.cs +++ /dev/null @@ -1,13 +0,0 @@ -using StructureHelperCommon.Infrastructures.Enums; - -namespace StructureHelperLogics.Models.Materials -{ - public interface IPrimitiveMaterial - { - string Id { get;} - MaterialTypes MaterialType { get; } - CodeTypes CodeType { get; set; } - string ClassName { get; } - double Strength { get; } - } -} diff --git a/StructureHelperLogics/Models/Materials/LibMaterial.cs b/StructureHelperLogics/Models/Materials/LibMaterial.cs index 30b1c3b..201bd27 100644 --- a/StructureHelperLogics/Models/Materials/LibMaterial.cs +++ b/StructureHelperLogics/Models/Materials/LibMaterial.cs @@ -1,73 +1,85 @@ -using LoaderCalculator.Data.Materials; -using StructureHelperCommon.Infrastructures.Enums; +using StructureHelperCommon.Infrastructures.Enums; using StructureHelperCommon.Infrastructures.Exceptions; using StructureHelperCommon.Infrastructures.Strings; -using StructureHelperLogics.Models.Materials; -using System; -using System.Collections.Generic; -using System.Text; +using LCM = LoaderCalculator.Data.Materials; +using LCMB = LoaderCalculator.Data.Materials.MaterialBuilders; namespace StructureHelperLogics.Models.Materials { public class LibMaterial : ILibMaterial { + private LCMB.IMaterialOptions materialOptions; + public MaterialTypes MaterialType { get; set; } - public CodeTypes CodeType { get; set; } + private CodeTypes codeType; + + private LimitStates limitState; + private CalcTerms calcTerm; public string Name { get; set; } public double MainStrength { get; set; } public LibMaterial(MaterialTypes materialType, CodeTypes codeType, string name, double mainStrength) { - MaterialType = materialType; - CodeType = codeType; + this.MaterialType = materialType; + this.codeType = codeType; Name = name; MainStrength = mainStrength; } - public IPrimitiveMaterial GetPrimitiveMaterial() + public LCM.IMaterial GetLoaderMaterial(LimitStates limitState, CalcTerms calcTerm) { - if (MaterialType == MaterialTypes.Concrete & CodeType == CodeTypes.EuroCode_2_1990) - { return GetConcreteEurocode();} - else if (MaterialType == MaterialTypes.Reinforcement & CodeType == CodeTypes.EuroCode_2_1990) - { return GetReinfrocementeEurocode();} - if (MaterialType == MaterialTypes.Concrete & CodeType == CodeTypes.SP63_13330_2018) - { return GetConcreteSP63(); } - else if (MaterialType == MaterialTypes.Reinforcement & CodeType == CodeTypes.SP63_13330_2018) - { return GetReinfrocementeSP63(); } - else throw new StructureHelperException($"{ErrorStrings.ObjectTypeIsUnknown}: material type = {MaterialType}, code type = {CodeType}"); + this.limitState = limitState; + this.calcTerm = calcTerm; + if (MaterialType == MaterialTypes.Concrete) + { return GetConcrete();} + else if (MaterialType == MaterialTypes.Reinforcement) + { return GetReinfrocemente();} + else throw new StructureHelperException($"{ErrorStrings.ObjectTypeIsUnknown}: material type = {MaterialType}, code type = {codeType}"); } - private IPrimitiveMaterial GetReinfrocementeSP63() + + private LCM.IMaterial GetReinfrocemente() { - IPrimitiveMaterial primitiveMaterial = new PrimitiveMaterial - { MaterialType = MaterialType, CodeType = CodeTypes.SP63_13330_2018, ClassName = $"Reinforcement {Name}", Strength = MainStrength }; - return primitiveMaterial; + materialOptions = new LCMB.ReinforcementOptions(); + SetMaterialOptions(); + LCMB.IMaterialBuilder builder = new LCMB.ReinforcementBuilder(materialOptions); + LCMB.IBuilderDirector director = new LCMB.BuilderDirector(builder); + return director.BuildMaterial(); } - private IPrimitiveMaterial GetConcreteSP63() + private LCM.IMaterial GetConcrete() { - IPrimitiveMaterial primitiveMaterial = new PrimitiveMaterial - { MaterialType = MaterialType, CodeType = CodeTypes.SP63_13330_2018, ClassName = $"Concrete {Name}", Strength = MainStrength }; - return primitiveMaterial; + materialOptions = new LCMB.ConcreteOptions(); + SetMaterialOptions(); + LCMB.IMaterialBuilder builder = new LCMB.ConcreteBuilder(materialOptions); + LCMB.IBuilderDirector director = new LCMB.BuilderDirector(builder); + return director.BuildMaterial(); } - private IPrimitiveMaterial GetReinfrocementeEurocode() + private void SetMaterialOptions() { - IPrimitiveMaterial primitiveMaterial = new PrimitiveMaterial - { MaterialType = MaterialType, CodeType = CodeTypes.EuroCode_2_1990, ClassName = $"Reinforcement {Name}", Strength = MainStrength }; - return primitiveMaterial; - } - - private IPrimitiveMaterial GetConcreteEurocode() - { - IPrimitiveMaterial primitiveMaterial = new PrimitiveMaterial - { MaterialType = MaterialType, CodeType = CodeTypes.EuroCode_2_1990, ClassName = $"Concrete {Name}", Strength = MainStrength }; - return primitiveMaterial; + materialOptions.Strength = MainStrength; + if (codeType == CodeTypes.EuroCode_2_1990) + { + materialOptions.CodesType = LCMB.CodesType.EC2_1990; + } + else if (codeType == CodeTypes.SP63_13330_2018) + { + materialOptions.CodesType = LCMB.CodesType.SP63_2018; + } + else { throw new StructureHelperException($"{ErrorStrings.ObjectTypeIsUnknown} : {codeType}"); } + if (limitState == LimitStates.Collapse) { materialOptions.LimitState = LCMB.LimitStates.Collapse; } + else if (limitState == LimitStates.ServiceAbility) { materialOptions.LimitState = LCMB.LimitStates.ServiceAbility; } + else if (limitState == LimitStates.Special) { materialOptions.LimitState = LCMB.LimitStates.Special; } + else { throw new StructureHelperException(ErrorStrings.LimitStatesIsNotValid); } + if (calcTerm == CalcTerms.ShortTerm) { materialOptions.IsShortTerm = true; } + else if (calcTerm == CalcTerms.LongTerm) { materialOptions.IsShortTerm = false; } + else { throw new StructureHelperException(ErrorStrings.LoadTermIsNotValid); } } public object Clone() { - return new LibMaterial(this.MaterialType, this.CodeType, this.Name, this.MainStrength); + return new LibMaterial(this.MaterialType, this.codeType, this.Name, this.MainStrength); } } } diff --git a/StructureHelperLogics/Models/Materials/PrimitiveMaterial.cs b/StructureHelperLogics/Models/Materials/PrimitiveMaterial.cs deleted file mode 100644 index ecf5f64..0000000 --- a/StructureHelperLogics/Models/Materials/PrimitiveMaterial.cs +++ /dev/null @@ -1,22 +0,0 @@ -using StructureHelper.Models.Materials; -using StructureHelperCommon.Infrastructures.Enums; -using System; - -namespace StructureHelperLogics.Models.Materials -{ - public class PrimitiveMaterial : IPrimitiveMaterial - { - public string Id { get; } - public MaterialTypes MaterialType { get; set; } - public CodeTypes CodeType { get; set; } - IHeadMaterial HeadMaterial { get; set; } - public string ClassName { get; set; } - public double Strength { get; set; } - - - public PrimitiveMaterial() - { - Id = Convert.ToString(Guid.NewGuid()); - } - } -} diff --git a/StructureHelperLogics/NdmCalculations/Primitives/INdmPrimitive.cs b/StructureHelperLogics/NdmCalculations/Primitives/INdmPrimitive.cs index 1471cea..2e92450 100644 --- a/StructureHelperLogics/NdmCalculations/Primitives/INdmPrimitive.cs +++ b/StructureHelperLogics/NdmCalculations/Primitives/INdmPrimitive.cs @@ -1,5 +1,6 @@ using StructureHelperLogics.Models.Materials; using StructureHelperCommon.Models.Shapes; +using StructureHelper.Models.Materials; namespace StructureHelperLogics.Models.Primitives { @@ -7,7 +8,7 @@ namespace StructureHelperLogics.Models.Primitives { ICenter Center { get; set; } IShape Shape { get; set; } - IPrimitiveMaterial PrimitiveMaterial {get;set;} + IHeadMaterial HeadMaterial { get; } double NdmMaxSize { get; set; } int NdmMinDivision { get; set; } double PrestrainKx { get; set; } diff --git a/StructureHelperLogics/NdmCalculations/Primitives/NdmPrimitive.cs b/StructureHelperLogics/NdmCalculations/Primitives/NdmPrimitive.cs index f86de59..61a42f2 100644 --- a/StructureHelperLogics/NdmCalculations/Primitives/NdmPrimitive.cs +++ b/StructureHelperLogics/NdmCalculations/Primitives/NdmPrimitive.cs @@ -1,17 +1,25 @@ using StructureHelperLogics.Models.Materials; using StructureHelperCommon.Models.Shapes; +using StructureHelper.Models.Materials; namespace StructureHelperLogics.Models.Primitives { public class NdmPrimitive : INdmPrimitive { + private IHeadMaterial headMaterial; + public ICenter Center { get; set; } public IShape Shape { get; set; } - public IPrimitiveMaterial PrimitiveMaterial { get; set; } + public IHeadMaterial HeadMaterial { get => headMaterial; } public double NdmMaxSize { get; set; } public int NdmMinDivision { get; set; } public double PrestrainKx { get; set; } public double PrestrainKy { get; set; } public double PrestrainEpsZ { get; set; } + + public NdmPrimitive(IHeadMaterial material) + { + headMaterial = material; + } } } diff --git a/StructureHelperLogics/NdmCalculations/Triangulations/ITriangulationOptions.cs b/StructureHelperLogics/NdmCalculations/Triangulations/ITriangulationOptions.cs index 23c47c3..0f1f0b6 100644 --- a/StructureHelperLogics/NdmCalculations/Triangulations/ITriangulationOptions.cs +++ b/StructureHelperLogics/NdmCalculations/Triangulations/ITriangulationOptions.cs @@ -1,4 +1,4 @@ -using StructureHelperLogics.Infrastructures.CommonEnums; +using StructureHelperCommon.Infrastructures.Enums; namespace StructureHelperLogics.NdmCalculations.Triangulations { diff --git a/StructureHelperLogics/NdmCalculations/Triangulations/Triangulation.cs b/StructureHelperLogics/NdmCalculations/Triangulations/Triangulation.cs index ff6d815..d0f0072 100644 --- a/StructureHelperLogics/NdmCalculations/Triangulations/Triangulation.cs +++ b/StructureHelperLogics/NdmCalculations/Triangulations/Triangulation.cs @@ -9,6 +9,7 @@ using StructureHelperCommon.Infrastructures.Strings; using StructureHelperLogics.Models.Materials; using StructureHelperCommon.Models.Shapes; using StructureHelperLogics.Models.Primitives; +using StructureHelper.Models.Materials; namespace StructureHelperLogics.NdmCalculations.Triangulations { @@ -17,13 +18,13 @@ namespace StructureHelperLogics.NdmCalculations.Triangulations public static IEnumerable GetNdms(IEnumerable ndmPrimitives, ITriangulationOptions options) { List ndms = new List(); - Dictionary primitiveMaterials = GetPrimitiveMaterials(ndmPrimitives); - Dictionary materials = GetMaterials(primitiveMaterials, options); + var headMaterials = GetPrimitiveMaterials(ndmPrimitives); + Dictionary materials = GetMaterials(headMaterials, options); foreach (var ndmPrimitive in ndmPrimitives) { - IPrimitiveMaterial primitiveMaterial = ndmPrimitive.PrimitiveMaterial; + IHeadMaterial headMaterial = ndmPrimitive.HeadMaterial; IMaterial material; - if (materials.TryGetValue(primitiveMaterial.Id, out material) == false) { throw new Exception("Material dictionary is not valid"); } + if (materials.TryGetValue(headMaterial.Id, out material) == false) { throw new Exception("Material dictionary is not valid"); } IEnumerable localNdms = GetNdmsByPrimitive(ndmPrimitive, material); ndms.AddRange(localNdms); } @@ -34,15 +35,15 @@ namespace StructureHelperLogics.NdmCalculations.Triangulations /// /// /// - private static Dictionary GetPrimitiveMaterials(IEnumerable ndmPrimitives) + private static Dictionary GetPrimitiveMaterials(IEnumerable ndmPrimitives) { - Dictionary primitiveMaterials = new Dictionary(); + Dictionary headMaterials = new Dictionary(); foreach (var ndmPrimitive in ndmPrimitives) { - IPrimitiveMaterial material = ndmPrimitive.PrimitiveMaterial; - if (!primitiveMaterials.ContainsKey(material.Id)) { primitiveMaterials.Add(material.Id, material); } + IHeadMaterial material = ndmPrimitive.HeadMaterial; + if (!headMaterials.ContainsKey(material.Id)) { headMaterials.Add(material.Id, material); } } - return primitiveMaterials; + return headMaterials; } /// /// Return dictionary of ndm-materials by dictionary of primirive materials @@ -51,16 +52,16 @@ namespace StructureHelperLogics.NdmCalculations.Triangulations /// /// /// - private static Dictionary GetMaterials(Dictionary PrimitiveMaterials, ITriangulationOptions options) + private static Dictionary GetMaterials(Dictionary PrimitiveMaterials, ITriangulationOptions options) { Dictionary materials = new Dictionary(); IEnumerable keyCollection = PrimitiveMaterials.Keys; IMaterial material; foreach (string id in keyCollection) { - IPrimitiveMaterial primitiveMaterial; - if (PrimitiveMaterials.TryGetValue(id, out primitiveMaterial) == false) { throw new StructureHelperException("Material dictionary is not valid"); } - material = GetMaterial(primitiveMaterial, options); + IHeadMaterial headMaterial; + if (PrimitiveMaterials.TryGetValue(id, out headMaterial) == false) { throw new StructureHelperException("Material dictionary is not valid"); } + material = headMaterial.GetLoaderMaterial(options.LimiteState, options.CalcTerm); materials.Add(id, material); } return materials; @@ -87,53 +88,49 @@ namespace StructureHelperLogics.NdmCalculations.Triangulations else { throw new StructureHelperException($"{ErrorStrings.ShapeIsNotCorrect} :{nameof(primitive.Shape)}"); } return ndms; } - - private static IMaterial GetMaterial(IPrimitiveMaterial primitiveMaterial, ITriangulationOptions options) - { - IMaterial material; - if (primitiveMaterial.MaterialType == MaterialTypes.Concrete) { material = GetConcreteMaterial(primitiveMaterial, options); } - else if (primitiveMaterial.MaterialType == MaterialTypes.Reinforcement) { material = GetReinforcementMaterial(primitiveMaterial, options); } - else { throw new StructureHelperException(ErrorStrings.MaterialTypeIsUnknown); } - return material; - } - - private static IMaterial GetConcreteMaterial(IPrimitiveMaterial primitiveMaterial, ITriangulationOptions options) - { - IMaterialOptions materialOptions = new ConcreteOptions(); - SetMaterialOptions(materialOptions, primitiveMaterial, options); - IMaterialBuilder builder = new ConcreteBuilder(materialOptions); - IBuilderDirector director = new BuilderDirector(builder); - return director.BuildMaterial(); - } - - private static IMaterial GetReinforcementMaterial(IPrimitiveMaterial primitiveMaterial, ITriangulationOptions options) - { - IMaterialOptions materialOptions = new ReinforcementOptions(); - SetMaterialOptions(materialOptions, primitiveMaterial, options); - IMaterialBuilder builder = new ReinforcementBuilder(materialOptions); - IBuilderDirector director = new BuilderDirector(builder); - return director.BuildMaterial(); - } - - private static void SetMaterialOptions(IMaterialOptions materialOptions, IPrimitiveMaterial primitiveMaterial, ITriangulationOptions options) - { - materialOptions.Strength = primitiveMaterial.Strength; - if (primitiveMaterial.CodeType == CodeTypes.EuroCode_2_1990) - { - materialOptions.CodesType = CodesType.EC2_1990; - } - else if (primitiveMaterial.CodeType == CodeTypes.SP63_13330_2018) - { - materialOptions.CodesType = CodesType.SP63_2018; - } - else { throw new StructureHelperException($"{ErrorStrings.ObjectTypeIsUnknown} : {primitiveMaterial.CodeType}"); } - if (options.LimiteState == Infrastructures.CommonEnums.LimitStates.Collapse) { materialOptions.LimitState = LimitStates.Collapse; } - else if (options.LimiteState == Infrastructures.CommonEnums.LimitStates.ServiceAbility) { materialOptions.LimitState = LimitStates.ServiceAbility; } - else if (options.LimiteState == Infrastructures.CommonEnums.LimitStates.Special) { materialOptions.LimitState = LimitStates.Special; } - else { throw new StructureHelperException(ErrorStrings.LimitStatesIsNotValid); } - if (options.CalcTerm == Infrastructures.CommonEnums.CalcTerms.ShortTerm) { materialOptions.IsShortTerm = true; } - else if (options.CalcTerm == Infrastructures.CommonEnums.CalcTerms.LongTerm) { materialOptions.IsShortTerm = false; } - else { throw new StructureHelperException(ErrorStrings.LoadTermIsNotValid); } - } + //private static IMaterial GetMaterial(IPrimitiveMaterial primitiveMaterial, ITriangulationOptions options) + //{ + // IMaterial material; + // if (primitiveMaterial.MaterialType == MaterialTypes.Concrete) { material = GetConcreteMaterial(primitiveMaterial, options); } + // else if (primitiveMaterial.MaterialType == MaterialTypes.Reinforcement) { material = GetReinforcementMaterial(primitiveMaterial, options); } + // else { throw new StructureHelperException(ErrorStrings.MaterialTypeIsUnknown); } + // return material; + //} + //private static IMaterial GetConcreteMaterial(IPrimitiveMaterial primitiveMaterial, ITriangulationOptions options) + //{ + // IMaterialOptions materialOptions = new ConcreteOptions(); + // SetMaterialOptions(materialOptions, primitiveMaterial, options); + // IMaterialBuilder builder = new ConcreteBuilder(materialOptions); + // IBuilderDirector director = new BuilderDirector(builder); + // return director.BuildMaterial(); + //} + //private static IMaterial GetReinforcementMaterial(IPrimitiveMaterial primitiveMaterial, ITriangulationOptions options) + //{ + // IMaterialOptions materialOptions = new ReinforcementOptions(); + // SetMaterialOptions(materialOptions, primitiveMaterial, options); + // IMaterialBuilder builder = new ReinforcementBuilder(materialOptions); + // IBuilderDirector director = new BuilderDirector(builder); + // return director.BuildMaterial(); + //} + //private static void SetMaterialOptions(IMaterialOptions materialOptions, IPrimitiveMaterial primitiveMaterial, ITriangulationOptions options) + //{ + // materialOptions.Strength = primitiveMaterial.Strength; + // if (primitiveMaterial.CodeType == CodeTypes.EuroCode_2_1990) + // { + // materialOptions.CodesType = CodesType.EC2_1990; + // } + // else if (primitiveMaterial.CodeType == CodeTypes.SP63_13330_2018) + // { + // materialOptions.CodesType = CodesType.SP63_2018; + // } + // else { throw new StructureHelperException($"{ErrorStrings.ObjectTypeIsUnknown} : {primitiveMaterial.CodeType}"); } + // if (options.LimiteState == Infrastructures.CommonEnums.LimitStates.Collapse) { materialOptions.LimitState = LimitStates.Collapse; } + // else if (options.LimiteState == Infrastructures.CommonEnums.LimitStates.ServiceAbility) { materialOptions.LimitState = LimitStates.ServiceAbility; } + // else if (options.LimiteState == Infrastructures.CommonEnums.LimitStates.Special) { materialOptions.LimitState = LimitStates.Special; } + // else { throw new StructureHelperException(ErrorStrings.LimitStatesIsNotValid); } + // if (options.CalcTerm == Infrastructures.CommonEnums.CalcTerms.ShortTerm) { materialOptions.IsShortTerm = true; } + // else if (options.CalcTerm == Infrastructures.CommonEnums.CalcTerms.LongTerm) { materialOptions.IsShortTerm = false; } + // else { throw new StructureHelperException(ErrorStrings.LoadTermIsNotValid); } + //} } } diff --git a/StructureHelperLogics/NdmCalculations/Triangulations/TriangulationOptions.cs b/StructureHelperLogics/NdmCalculations/Triangulations/TriangulationOptions.cs index 90ad22a..6a52527 100644 --- a/StructureHelperLogics/NdmCalculations/Triangulations/TriangulationOptions.cs +++ b/StructureHelperLogics/NdmCalculations/Triangulations/TriangulationOptions.cs @@ -1,4 +1,4 @@ -using StructureHelperLogics.Infrastructures.CommonEnums; +using StructureHelperCommon.Infrastructures.Enums; namespace StructureHelperLogics.NdmCalculations.Triangulations { diff --git a/StructureHelperLogics/Services/CalculationService.cs b/StructureHelperLogics/Services/CalculationService.cs index f804431..11168aa 100644 --- a/StructureHelperLogics/Services/CalculationService.cs +++ b/StructureHelperLogics/Services/CalculationService.cs @@ -5,11 +5,11 @@ using LoaderCalculator.Data.Matrix; using LoaderCalculator.Data.Ndms; using LoaderCalculator.Data.SourceData; using StructureHelperLogics.NdmCalculations.Triangulations; -using StructureHelperLogics.Infrastructures.CommonEnums; using StructureHelperLogics.Models.Calculations.CalculationsResults; using StructureHelperLogics.Models.Calculations.CalculationProperties; using System; using StructureHelperLogics.Models.Primitives; +using StructureHelperCommon.Infrastructures.Enums; namespace StructureHelperLogics.Services { diff --git a/StructureHelperLogics/StructureHelperLogics.csproj b/StructureHelperLogics/StructureHelperLogics.csproj index df78d7b..94ed563 100644 --- a/StructureHelperLogics/StructureHelperLogics.csproj +++ b/StructureHelperLogics/StructureHelperLogics.csproj @@ -17,4 +17,8 @@ + + + + \ No newline at end of file diff --git a/Windows/CalculationWindows/CalculationPropertyWindow/CalculationPropertyView.xaml.cs b/Windows/CalculationWindows/CalculationPropertyWindow/CalculationPropertyView.xaml.cs index 8a368fe..ae61bf2 100644 --- a/Windows/CalculationWindows/CalculationPropertyWindow/CalculationPropertyView.xaml.cs +++ b/Windows/CalculationWindows/CalculationPropertyWindow/CalculationPropertyView.xaml.cs @@ -1,18 +1,7 @@ using StructureHelper.Windows.ViewModels.Calculations.CalculationProperies; -using StructureHelperLogics.Infrastructures.CommonEnums; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; +using StructureHelperCommon.Infrastructures.Enums; using System.Windows; using System.Windows.Controls; -using System.Windows.Data; -using System.Windows.Documents; -using System.Windows.Input; -using System.Windows.Media; -using System.Windows.Media.Imaging; -using System.Windows.Shapes; namespace StructureHelper.Windows.CalculationWindows.CalculationPropertyWindow { diff --git a/Windows/MainWindow/MainModel.cs b/Windows/MainWindow/MainModel.cs index 7c4b43c..28f29af 100644 --- a/Windows/MainWindow/MainModel.cs +++ b/Windows/MainWindow/MainModel.cs @@ -9,7 +9,6 @@ using StructureHelper.Services.Primitives; using StructureHelper.UnitSystem; using StructureHelper.UnitSystem.Systems; using StructureHelperCommon.Infrastructures.Enums; -using StructureHelperLogics.Infrastructures.CommonEnums; using StructureHelperLogics.Models.Calculations.CalculationProperties; using StructureHelperLogics.Models.Materials; using StructureHelperLogics.Models.Materials.Factories; diff --git a/Windows/ViewModels/Calculations/CalculationProperies/CalculationPropertyViewModel.cs b/Windows/ViewModels/Calculations/CalculationProperies/CalculationPropertyViewModel.cs index 43a04f4..78d87b2 100644 --- a/Windows/ViewModels/Calculations/CalculationProperies/CalculationPropertyViewModel.cs +++ b/Windows/ViewModels/Calculations/CalculationProperies/CalculationPropertyViewModel.cs @@ -1,5 +1,5 @@ using StructureHelper.Infrastructure; -using StructureHelperLogics.Infrastructures.CommonEnums; +using StructureHelperCommon.Infrastructures.Enums; using StructureHelperLogics.Models.Calculations.CalculationProperties; using System; using System.Collections.Generic;