From d240968f29c9e725113ce261e0496f82a9588041 Mon Sep 17 00:00:00 2001 From: Evgeny Redikultsev Date: Thu, 15 Dec 2022 21:46:15 +0500 Subject: [PATCH] SourceToTargetViewModel was added --- StructureHelper.csproj | 15 ++ .../CrossSections/CrossSectionRepository.cs | 4 +- .../CrossSections/ICrossSectionRepository.cs | 2 +- .../Analyses/ByForces/ForceCalculator.cs | 16 +- .../Primitives/RectanglePrimitive.cs | 1 + .../ViewModelTests/NdmPrimitiveTests.cs | 4 +- .../ForceCalculatorView.xaml | 58 +++---- .../ForceCalculatorView.xaml.cs | 11 +- .../SourceToTargetControl.xaml | 30 ++++ .../SourceToTargetControl.xaml.cs | 34 ++++ Windows/MainWindow/MainView.xaml | 21 +-- Windows/MainWindow/MainViewModel.cs | 153 +----------------- .../Calculators/ForceCalculatorViewModel.cs | 59 ++++++- .../ICombinationSourceToTargetViewModel.cs | 13 ++ Windows/ViewModels/ICRUDViewModel.cs | 20 +++ .../ViewModels/ISourceToTargetViewModel.cs | 25 +++ .../CalculatorsViewModelLogic.cs | 120 ++++++++++++++ .../ForceCombinationViewModelLogic.cs | 102 ++++++++++++ .../ICalculatorsViewModelLogic.cs | 13 ++ .../IForceCombinationViewModelLogic.cs | 14 ++ Windows/ViewModels/SourceToTargetViewModel.cs | 117 ++++++++++++++ 21 files changed, 632 insertions(+), 200 deletions(-) create mode 100644 Windows/CalculationWindows/CalculatorsViews/SourceToTargetControl.xaml create mode 100644 Windows/CalculationWindows/CalculatorsViews/SourceToTargetControl.xaml.cs create mode 100644 Windows/ViewModels/Calculations/Calculators/ICombinationSourceToTargetViewModel.cs create mode 100644 Windows/ViewModels/ICRUDViewModel.cs create mode 100644 Windows/ViewModels/ISourceToTargetViewModel.cs create mode 100644 Windows/ViewModels/NdmCrossSections/CalculatorsViewModelLogic.cs create mode 100644 Windows/ViewModels/NdmCrossSections/ForceCombinationViewModelLogic.cs create mode 100644 Windows/ViewModels/NdmCrossSections/ICalculatorsViewModelLogic.cs create mode 100644 Windows/ViewModels/NdmCrossSections/IForceCombinationViewModelLogic.cs create mode 100644 Windows/ViewModels/SourceToTargetViewModel.cs diff --git a/StructureHelper.csproj b/StructureHelper.csproj index 6a2ded2..aa2665f 100644 --- a/StructureHelper.csproj +++ b/StructureHelper.csproj @@ -187,6 +187,9 @@ ForceCalculatorView.xaml + + SourceToTargetControl.xaml + ColorPickerView.xaml @@ -231,9 +234,17 @@ + + + + + + + + @@ -296,6 +307,10 @@ Designer MSBuild:Compile + + Designer + MSBuild:Compile + Designer MSBuild:Compile diff --git a/StructureHelperLogics/Models/CrossSections/CrossSectionRepository.cs b/StructureHelperLogics/Models/CrossSections/CrossSectionRepository.cs index b16f45a..8a634c0 100644 --- a/StructureHelperLogics/Models/CrossSections/CrossSectionRepository.cs +++ b/StructureHelperLogics/Models/CrossSections/CrossSectionRepository.cs @@ -16,14 +16,14 @@ namespace StructureHelperLogics.Models.CrossSections public List ForceCombinationLists { get; private set; } public List HeadMaterials { get; private set; } public List Primitives { get; } - public List Calculators { get; private set; } + public List CalculatorsList { get; private set; } public CrossSectionRepository() { ForceCombinationLists = new List(); HeadMaterials = new List(); Primitives = new List(); - Calculators = new List(); + CalculatorsList = new List(); } } } diff --git a/StructureHelperLogics/Models/CrossSections/ICrossSectionRepository.cs b/StructureHelperLogics/Models/CrossSections/ICrossSectionRepository.cs index 029711e..2499617 100644 --- a/StructureHelperLogics/Models/CrossSections/ICrossSectionRepository.cs +++ b/StructureHelperLogics/Models/CrossSections/ICrossSectionRepository.cs @@ -15,6 +15,6 @@ namespace StructureHelperLogics.Models.CrossSections public interface ICrossSectionRepository : IHasHeadMaterials, IHasPrimitives { List ForceCombinationLists { get; } - List Calculators { get; } + List CalculatorsList { get; } } } diff --git a/StructureHelperLogics/NdmCalculations/Analyses/ByForces/ForceCalculator.cs b/StructureHelperLogics/NdmCalculations/Analyses/ByForces/ForceCalculator.cs index 1ecec65..ac74d05 100644 --- a/StructureHelperLogics/NdmCalculations/Analyses/ByForces/ForceCalculator.cs +++ b/StructureHelperLogics/NdmCalculations/Analyses/ByForces/ForceCalculator.cs @@ -1,18 +1,18 @@ -using StructureHelperCommon.Models.Forces; -using StructureHelperLogics.Models.Primitives; +using StructureHelperCommon.Infrastructures.Enums; +using StructureHelperCommon.Models.Forces; using StructureHelperLogics.NdmCalculations.Primitives; using System; using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading; -using System.Threading.Tasks; namespace StructureHelperLogics.NdmCalculations.Analyses.ByForces { public class ForceCalculator : INdmCalculator { public string Name { get; set; } + public double IterationAccuracy { get; set; } + public int MaxIterationCount { get; set; } + public List LimitStatesList { get; } + public List CalcTermsList { get; } public List ForceCombinationLists { get; } public List NdmPrimitives { get; } public INdmResult Result { get; } @@ -25,6 +25,10 @@ namespace StructureHelperLogics.NdmCalculations.Analyses.ByForces { ForceCombinationLists = new List(); NdmPrimitives = new List(); + IterationAccuracy = 0.001d; + MaxIterationCount = 1000; + LimitStatesList = new List() { LimitStates.ULS, LimitStates.SLS }; + CalcTermsList = new List() { CalcTerms.ShortTerm, CalcTerms.LongTerm }; } } } diff --git a/StructureHelperLogics/NdmCalculations/Primitives/RectanglePrimitive.cs b/StructureHelperLogics/NdmCalculations/Primitives/RectanglePrimitive.cs index 4a35140..b352113 100644 --- a/StructureHelperLogics/NdmCalculations/Primitives/RectanglePrimitive.cs +++ b/StructureHelperLogics/NdmCalculations/Primitives/RectanglePrimitive.cs @@ -33,6 +33,7 @@ namespace StructureHelperLogics.NdmCalculations.Primitives public RectanglePrimitive() { + Name = "New Rectangle"; NdmMaxSize = 0.01d; NdmMinDivision = 10; } diff --git a/StructureHelperTests/ViewModelTests/NdmPrimitiveTests.cs b/StructureHelperTests/ViewModelTests/NdmPrimitiveTests.cs index 0ca437d..9b056eb 100644 --- a/StructureHelperTests/ViewModelTests/NdmPrimitiveTests.cs +++ b/StructureHelperTests/ViewModelTests/NdmPrimitiveTests.cs @@ -20,8 +20,8 @@ namespace StructureHelperTests.ViewModelTests { public class NdmPrimitiveTests { - [TestCase] - public void RectanglePrimitiveTest() + [Test] + public void Run_ShouldPass() { //Arrange var material = HeadMaterialFactory.GetHeadMaterial(HeadmaterialType.Concrete40, CodeTypes.SP63_13330_2018); diff --git a/Windows/CalculationWindows/CalculatorsViews/ForceCalculatorViews/ForceCalculatorView.xaml b/Windows/CalculationWindows/CalculatorsViews/ForceCalculatorViews/ForceCalculatorView.xaml index d54d4a9..fa4bbeb 100644 --- a/Windows/CalculationWindows/CalculatorsViews/ForceCalculatorViews/ForceCalculatorView.xaml +++ b/Windows/CalculationWindows/CalculatorsViews/ForceCalculatorViews/ForceCalculatorView.xaml @@ -7,11 +7,31 @@ xmlns:vm="clr-namespace:StructureHelper.Windows.ViewModels.Calculations.Calculators" d:DataContext="{d:DesignInstance vm:ForceCalculatorViewModel}" mc:Ignorable="d" - Title="Analysis by forces" Height="300" Width="400" MinHeight="300" MinWidth="400" WindowStartupLocation="CenterScreen"> + Title="Analysis by forces" Height="300" Width="400" MinHeight="300" MinWidth="400" WindowStartupLocation="CenterScreen" Closing="Window_Closing"> + + + + + + + + + + + + +