From 0d7f47653b59e5667002c07c75b75daa77f0f5f5 Mon Sep 17 00:00:00 2001 From: Evgeny Redikultsev Date: Sun, 8 Jun 2025 15:49:17 +0500 Subject: [PATCH] Add beam shear converting to DTO --- .../BeamShearActionConvertStrategy.cs | 4 +- .../BeamShearAnalysisToDTOConvertStrategy.cs | 0 ...BeamShearAxisActionToDTOConvertStrategy.cs | 0 ...CalculatorInputDataToDTOConvertStrategy.cs | 50 +++++++++++ ...BeamShearCalculatorToDTOConvertStrategy.cs | 48 +++++++++++ ...BeamShearRepositoryToDTOConvertStrategy.cs | 9 +- .../BeamShearSectionToDTOConvertStrategy.cs | 58 +++++++++++++ .../BeamShearToDTOConvertStrategy.cs | 0 .../BeamSpanLoadToDTOConvertStrategy.cs | 9 +- .../HasBeamShearActionToDTOConvertStrategy.cs | 5 -- ...BeamShearCalculatorToDTOConvertStrategy.cs | 64 ++++++++++++++ ...asBeamShearSectionToDTOConvertStrategy.cs} | 18 +++- .../HasStirrupToDTOConvertStrategy.cs | 84 +++++++++++++++++++ .../StirrupByDensityToDTOConvertStrategy.cs | 44 ++++++++++ .../StirrupByRebarToDTOConvertStrategy.cs | 54 ++++++++++++ .../ConcentratedForceToDTOConvertStrategy.cs | 0 .../DistributedLoadToDTOConvertStrategy.cs | 0 ...mbinationPropertyFromDTOConvertStrategy.cs | 0 ...CombinationPropertyToDTOConvertStrategy.cs | 0 .../FactoredForceTupleToDTOConvertStrategy.cs | 0 .../ForceActionFromDTOConvertStrategy.cs | 0 .../ForceActionToDTOConvertStrategy.cs | 0 ...eCombinaionFromFileToDTOConvertStrategy.cs | 0 ...mbinationFromFileFromDTOConvertStrategy.cs | 0 ...ceCombinationListFromDTOConvertStrategy.cs | 0 ...orceCombinationListToDTOConvertStrategy.cs | 0 ...ForceFactoredListFromDTOConvertStrategy.cs | 0 .../ForceFactoredListToDTOConvertStrategy.cs | 0 .../ForceTupleFromDTOConvertStrategy.cs | 0 .../ForceTupleToDTOConvertStrategy.cs | 0 ...ncreteLibMaterialFromDTOConvertStrategy.cs | 0 ...ConcreteLibMaterialToDTOConvertStrategy.cs | 6 +- .../ElasticMaterialFromDTOConvertStrategy.cs | 0 .../ElasticMaterialToDTOConvertStrategy.cs | 0 .../HasMaterialFromDTOUpdateStrategy.cs | 0 .../HeadMaterialFromDTOConvertStrategy.cs | 0 .../HeadMaterialToDTOConvertStrategy.cs | 0 ...erMaterialDTOSafetyFactorUpdateStrategy.cs | 0 .../HelperMaterialFromDTOConvertStrategy.cs | 0 .../HelperMaterialToDTOConvertStrategy.cs | 10 +-- .../MaterialSafetyFactorToDTOLogic.cs | 0 ...terialSafetyFactorsToDTOConvertStrategy.cs | 5 -- ...cementLibMaterialFromDTOConvertStrategy.cs | 0 ...orcementLibMaterialToDTOConvertStrategy.cs | 0 .../CrackCalculatorFromDTOConvertStrategy.cs | 0 ...lculatorInputDataFromDTOConvertStrategy.cs | 0 ...CalculatorInputDataToDTOConvertStrategy.cs | 0 .../CrackCalculatorToDTOConvertStrategy.cs | 0 .../CrossSectionFromDTOConvertStrategy.cs | 0 ...ectionNdmAnalysisFromDTOConvertStrategy.cs | 0 ...sSectionNdmAnalysisToDTOConvertStrategy.cs | 0 ...SectionRepositoryFromDTOConvertStrategy.cs | 0 ...ssSectionRepositoryToDTOConvertStrategy.cs | 0 .../CrossSectionToDTOConvertStrategy.cs | 0 ...lipseNdmPrimitiveFromDTOConvertStrategy.cs | 0 ...EllipseNdmPrimitiveToDTOConvertStrategy.cs | 2 +- .../ForceCalculatorFromDTOConvertStrategy.cs | 0 ...lculatorInputDataFromDTOConvertStrategy.cs | 0 ...CalculatorInputDataToDTOConvertStrategy.cs | 0 .../ForceCalculatorToDTOConvertStrategy.cs | 2 +- .../NdmElementToDTOConvertStrategy.cs} | 8 +- .../NdmPrimitiveFromDTOConvertStrategy.cs | 0 .../NdmPrimitiveToDTOConvertStrategy.cs | 0 ...PointNdmPrimitiveFromDTOConvertStrategy.cs | 0 .../PointNdmPrimitiveToDTOConvertStrategy.cs | 2 +- ...RebarNdmPrimitiveFromDTOConvertStrategy.cs | 0 .../RebarNdmPrimitiveToDTOConvertStrategy.cs | 2 +- ...ctangleNdmPrimitiveToDTOConvertStrategy.cs | 2 +- ...ectanglePrimitiveFromDTOConvertStrategy.cs | 0 .../RectangleShapeToDTOConvertStrategy.cs | 48 +++++++++++ .../RectangleShapeToDTOConvertStrategy.cs | 31 ------- .../Converters/ShapeToDTOConvertStrategy.cs | 55 ++++++++++++ .../{ => BeamShears}/BeamShearActionDTO.cs | 0 .../{ => BeamShears}/BeamShearAnalysisDTO.cs | 0 .../BeamShearAxisActionDTO.cs | 0 .../BeamShearCalculatorDTO.cs | 6 +- .../BeamShearCalculatorInputDataDTO.cs | 8 +- .../{ => BeamShears}/BeamShearDTO.cs | 0 .../BeamShearRepositoryDTO.cs | 4 +- .../{ => BeamShears}/BeamShearSectionDTO.cs | 4 +- .../{ => BeamShears}/StirrupByDensityDTO.cs | 8 +- .../{ => BeamShears}/StirrupByRebarDTO.cs | 2 +- .../{ => Forces}/ConcentratedForceDTO.cs | 0 .../{ => Forces}/DistributedLoadDTO.cs | 0 .../FactoredCombinationPropertyDTO.cs | 0 .../{ => Forces}/FactoredForceTupleDTO.cs | 0 .../ForceCombinationFromFileDTO.cs | 5 -- .../{ => Forces}/ForceCombinationListDTO.cs | 0 .../{ => Forces}/ForceFactoredListDTO.cs | 0 .../DTOEntities/{ => Forces}/ForceTupleDTO.cs | 0 .../{ => Materials}/ConcreteLibMaterialDTO.cs | 0 .../{ => Materials}/ElasticMaterialDTO.cs | 0 .../{ => Materials}/FRMaterialDTO.cs | 0 .../{ => Materials}/HeadMaterialDTO.cs | 0 .../MaterialPartialFactorDTO.cs | 0 .../MaterialSafetyFactorDTO.cs | 0 .../ReinforcementLibMaterialDTO.cs | 0 .../CrackCalculatorDTO.cs | 7 +- .../CrackCalculatorInputDataDTO.cs | 0 .../{ => NdmCrossSections}/CrossSectionDTO.cs | 5 -- .../CrossSectionNdmAnalysisDTO.cs | 0 .../CrossSectionRepositoryDTO.cs | 0 .../EllipseNdmPrimitiveDTO.cs | 9 +- .../ForceCalculatorDTO.cs | 15 ++-- .../ForceCalculatorInputDataDTO.cs | 0 .../{ => NdmCrossSections}/NdmElementDTO.cs | 11 ++- .../PointNdmPrimitiveDTO.cs | 2 +- .../RebarNdmPrimitiveDTO.cs | 2 +- .../RectangleNdmPrimitiveDTO.cs | 4 +- .../UserCrackInputDataDTO.cs | 0 .../DTOs/DTOEntities/RectangleShapeDTO.cs | 12 +-- .../DTOs/DTOEntities/TypeBinderListFactory.cs | 5 ++ DataAccess/DataAccess.csproj | 4 - .../Calculators/LimitCurveVisualCalculator.cs | 2 +- .../Cracks/CrackCalculatorInputDataView.xaml | 8 +- .../CrackCalculatorInputDataViewModel.cs | 23 +++-- .../ForceCalculatorView.xaml | 9 +- .../ForceCalculatorViewModel.cs | 21 ++++- .../LimitCurveCalculatorView.xaml | 4 +- .../LimitCurveCalculatorViewModel.cs | 19 +++-- .../Interfaces/DictionaryConvertStrategy.cs | 1 + .../Models/Calculators/ICalculator.cs | 11 +-- .../Calculators/IFindParameterCalculator.cs | 2 +- .../Models/Calculators/ILogicCalculator.cs | 17 ++++ .../Models/Soils/AnchorCalculator.cs | 2 + .../Models/BeamShears/BeamShearRepository.cs | 2 +- .../Factories/BeamShearTemplatesFactory.cs | 6 +- .../Models/BeamShears/IBeamShearCalculator.cs | 1 - .../IBeamShearCalculatorInputData.cs | 5 -- .../Models/BeamShears/IBeamShearRepository.cs | 2 +- .../Analyses/ByForces/ForceCalculator.cs | 2 +- .../Analyses/ByForces/ForceTupleCalculator.cs | 1 - .../ByForces/IForceTupleCalculator.cs | 2 +- .../LimitCurve/ILimitCurveCalculator.cs | 2 +- .../LimitCurve/LimitCurvesCalculator.cs | 10 +-- .../Logics/ForceCalculatorUpdateStrategy.cs | 3 +- .../Analyses/Geometry/GeometryCalculator.cs | 1 - .../Analyses/Geometry/IGeometryCalculator.cs | 2 +- .../Buckling/ConcreteBucklingCalculator.cs | 2 - .../Buckling/IConcreteBucklingCalculator.cs | 8 +- .../Cracking/CrackCalculator.cs | 2 +- .../Cracking/CrackCalculatorUpdateStrategy.cs | 7 +- .../CrackForceBynarySearchCalculator.cs | 5 +- .../CrackForceSteppedSearchCalculator.cs | 32 ------- .../Cracking/ICrackForceCalculator.cs | 3 +- .../Cracking/IRebarCrackCalculator.cs | 2 +- .../Cracking/IRebarStressCalculator.cs | 2 +- .../Cracking/RebarCrackCalculator.cs | 7 +- .../Cracking/RebarStressCalculator.cs | 1 - .../Cracking/TupleCrackCalculator.cs | 7 +- 150 files changed, 710 insertions(+), 259 deletions(-) rename DataAccess/DTOs/Converters/{ => BeamShears}/BeamShearActionConvertStrategy.cs (89%) rename DataAccess/DTOs/Converters/{ => BeamShears}/BeamShearAnalysisToDTOConvertStrategy.cs (100%) rename DataAccess/DTOs/Converters/{ => BeamShears}/BeamShearAxisActionToDTOConvertStrategy.cs (100%) create mode 100644 DataAccess/DTOs/Converters/BeamShears/BeamShearCalculatorInputDataToDTOConvertStrategy.cs create mode 100644 DataAccess/DTOs/Converters/BeamShears/BeamShearCalculatorToDTOConvertStrategy.cs rename DataAccess/DTOs/Converters/{ => BeamShears}/BeamShearRepositoryToDTOConvertStrategy.cs (75%) create mode 100644 DataAccess/DTOs/Converters/BeamShears/BeamShearSectionToDTOConvertStrategy.cs rename DataAccess/DTOs/Converters/{ => BeamShears}/BeamShearToDTOConvertStrategy.cs (100%) rename DataAccess/DTOs/Converters/{ => BeamShears}/BeamSpanLoadToDTOConvertStrategy.cs (91%) rename DataAccess/DTOs/Converters/{ => BeamShears}/HasBeamShearActionToDTOConvertStrategy.cs (93%) create mode 100644 DataAccess/DTOs/Converters/BeamShears/HasBeamShearCalculatorToDTOConvertStrategy.cs rename DataAccess/DTOs/Converters/{HasBeamShearSectionConvertStrategy.cs => BeamShears/HasBeamShearSectionToDTOConvertStrategy.cs} (51%) create mode 100644 DataAccess/DTOs/Converters/BeamShears/HasStirrupToDTOConvertStrategy.cs create mode 100644 DataAccess/DTOs/Converters/BeamShears/StirrupByDensityToDTOConvertStrategy.cs create mode 100644 DataAccess/DTOs/Converters/BeamShears/StirrupByRebarToDTOConvertStrategy.cs rename DataAccess/DTOs/Converters/{ => Forces}/ConcentratedForceToDTOConvertStrategy.cs (100%) rename DataAccess/DTOs/Converters/{ => Forces}/DistributedLoadToDTOConvertStrategy.cs (100%) rename DataAccess/DTOs/Converters/{ => Forces}/FactoredCombinationPropertyFromDTOConvertStrategy.cs (100%) rename DataAccess/DTOs/Converters/{ => Forces}/FactoredCombinationPropertyToDTOConvertStrategy.cs (100%) rename DataAccess/DTOs/Converters/{ => Forces}/FactoredForceTupleToDTOConvertStrategy.cs (100%) rename DataAccess/DTOs/Converters/{ => Forces}/ForceActionFromDTOConvertStrategy.cs (100%) rename DataAccess/DTOs/Converters/{ => Forces}/ForceActionToDTOConvertStrategy.cs (100%) rename DataAccess/DTOs/Converters/{ => Forces}/ForceCombinaionFromFileToDTOConvertStrategy.cs (100%) rename DataAccess/DTOs/Converters/{ => Forces}/ForceCombinationFromFileFromDTOConvertStrategy.cs (100%) rename DataAccess/DTOs/Converters/{ => Forces}/ForceCombinationListFromDTOConvertStrategy.cs (100%) rename DataAccess/DTOs/Converters/{ => Forces}/ForceCombinationListToDTOConvertStrategy.cs (100%) rename DataAccess/DTOs/Converters/{ => Forces}/ForceFactoredListFromDTOConvertStrategy.cs (100%) rename DataAccess/DTOs/Converters/{ => Forces}/ForceFactoredListToDTOConvertStrategy.cs (100%) rename DataAccess/DTOs/Converters/{ => Forces}/ForceTupleFromDTOConvertStrategy.cs (100%) rename DataAccess/DTOs/Converters/{ => Forces}/ForceTupleToDTOConvertStrategy.cs (100%) rename DataAccess/DTOs/Converters/{ => Materials}/ConcreteLibMaterialFromDTOConvertStrategy.cs (100%) rename DataAccess/DTOs/Converters/{ => Materials}/ConcreteLibMaterialToDTOConvertStrategy.cs (84%) rename DataAccess/DTOs/Converters/{ => Materials}/ElasticMaterialFromDTOConvertStrategy.cs (100%) rename DataAccess/DTOs/Converters/{ => Materials}/ElasticMaterialToDTOConvertStrategy.cs (100%) rename DataAccess/DTOs/Converters/{ => Materials}/HasMaterialFromDTOUpdateStrategy.cs (100%) rename DataAccess/DTOs/Converters/{ => Materials}/HeadMaterialFromDTOConvertStrategy.cs (100%) rename DataAccess/DTOs/Converters/{ => Materials}/HeadMaterialToDTOConvertStrategy.cs (100%) rename DataAccess/DTOs/Converters/{ => Materials}/HelperMaterialDTOSafetyFactorUpdateStrategy.cs (100%) rename DataAccess/DTOs/Converters/{ => Materials}/HelperMaterialFromDTOConvertStrategy.cs (100%) rename DataAccess/DTOs/Converters/{ => Materials}/HelperMaterialToDTOConvertStrategy.cs (94%) rename DataAccess/DTOs/Converters/{ => Materials}/MaterialSafetyFactorToDTOLogic.cs (100%) rename DataAccess/DTOs/Converters/{ => Materials}/MaterialSafetyFactorsToDTOConvertStrategy.cs (88%) rename DataAccess/DTOs/Converters/{ => Materials}/ReinforcementLibMaterialFromDTOConvertStrategy.cs (100%) rename DataAccess/DTOs/Converters/{ => Materials}/ReinforcementLibMaterialToDTOConvertStrategy.cs (100%) rename DataAccess/DTOs/Converters/{ => NdmCrossSections}/CrackCalculatorFromDTOConvertStrategy.cs (100%) rename DataAccess/DTOs/Converters/{ => NdmCrossSections}/CrackCalculatorInputDataFromDTOConvertStrategy.cs (100%) rename DataAccess/DTOs/Converters/{ => NdmCrossSections}/CrackCalculatorInputDataToDTOConvertStrategy.cs (100%) rename DataAccess/DTOs/Converters/{ => NdmCrossSections}/CrackCalculatorToDTOConvertStrategy.cs (100%) rename DataAccess/DTOs/Converters/{ => NdmCrossSections}/CrossSectionFromDTOConvertStrategy.cs (100%) rename DataAccess/DTOs/Converters/{ => NdmCrossSections}/CrossSectionNdmAnalysisFromDTOConvertStrategy.cs (100%) rename DataAccess/DTOs/Converters/{ => NdmCrossSections}/CrossSectionNdmAnalysisToDTOConvertStrategy.cs (100%) rename DataAccess/DTOs/Converters/{ => NdmCrossSections}/CrossSectionRepositoryFromDTOConvertStrategy.cs (100%) rename DataAccess/DTOs/Converters/{ => NdmCrossSections}/CrossSectionRepositoryToDTOConvertStrategy.cs (100%) rename DataAccess/DTOs/Converters/{ => NdmCrossSections}/CrossSectionToDTOConvertStrategy.cs (100%) rename DataAccess/DTOs/Converters/{ => NdmCrossSections}/EllipseNdmPrimitiveFromDTOConvertStrategy.cs (100%) rename DataAccess/DTOs/Converters/{ => NdmCrossSections}/EllipseNdmPrimitiveToDTOConvertStrategy.cs (98%) rename DataAccess/DTOs/Converters/{ => NdmCrossSections}/ForceCalculatorFromDTOConvertStrategy.cs (100%) rename DataAccess/DTOs/Converters/{ => NdmCrossSections}/ForceCalculatorInputDataFromDTOConvertStrategy.cs (100%) rename DataAccess/DTOs/Converters/{ => NdmCrossSections}/ForceCalculatorInputDataToDTOConvertStrategy.cs (100%) rename DataAccess/DTOs/Converters/{ => NdmCrossSections}/ForceCalculatorToDTOConvertStrategy.cs (97%) rename DataAccess/DTOs/Converters/{NdmElementDTOConvertStrategy.cs => NdmCrossSections/NdmElementToDTOConvertStrategy.cs} (91%) rename DataAccess/DTOs/Converters/{ => NdmCrossSections}/NdmPrimitiveFromDTOConvertStrategy.cs (100%) rename DataAccess/DTOs/Converters/{ => NdmCrossSections}/NdmPrimitiveToDTOConvertStrategy.cs (100%) rename DataAccess/DTOs/Converters/{ => NdmCrossSections}/PointNdmPrimitiveFromDTOConvertStrategy.cs (100%) rename DataAccess/DTOs/Converters/{ => NdmCrossSections}/PointNdmPrimitiveToDTOConvertStrategy.cs (98%) rename DataAccess/DTOs/Converters/{ => NdmCrossSections}/RebarNdmPrimitiveFromDTOConvertStrategy.cs (100%) rename DataAccess/DTOs/Converters/{ => NdmCrossSections}/RebarNdmPrimitiveToDTOConvertStrategy.cs (98%) rename DataAccess/DTOs/Converters/{ => NdmCrossSections}/RectangleNdmPrimitiveToDTOConvertStrategy.cs (98%) rename DataAccess/DTOs/Converters/{ => NdmCrossSections}/RectanglePrimitiveFromDTOConvertStrategy.cs (100%) create mode 100644 DataAccess/DTOs/Converters/NdmCrossSections/RectangleShapeToDTOConvertStrategy.cs delete mode 100644 DataAccess/DTOs/Converters/RectangleShapeToDTOConvertStrategy.cs create mode 100644 DataAccess/DTOs/Converters/ShapeToDTOConvertStrategy.cs rename DataAccess/DTOs/DTOEntities/{ => BeamShears}/BeamShearActionDTO.cs (100%) rename DataAccess/DTOs/DTOEntities/{ => BeamShears}/BeamShearAnalysisDTO.cs (100%) rename DataAccess/DTOs/DTOEntities/{ => BeamShears}/BeamShearAxisActionDTO.cs (100%) rename DataAccess/DTOs/DTOEntities/{ => BeamShears}/BeamShearCalculatorDTO.cs (88%) rename DataAccess/DTOs/DTOEntities/{ => BeamShears}/BeamShearCalculatorInputDataDTO.cs (70%) rename DataAccess/DTOs/DTOEntities/{ => BeamShears}/BeamShearDTO.cs (100%) rename DataAccess/DTOs/DTOEntities/{ => BeamShears}/BeamShearRepositoryDTO.cs (100%) rename DataAccess/DTOs/DTOEntities/{ => BeamShears}/BeamShearSectionDTO.cs (88%) rename DataAccess/DTOs/DTOEntities/{ => BeamShears}/StirrupByDensityDTO.cs (79%) rename DataAccess/DTOs/DTOEntities/{ => BeamShears}/StirrupByRebarDTO.cs (95%) rename DataAccess/DTOs/DTOEntities/{ => Forces}/ConcentratedForceDTO.cs (100%) rename DataAccess/DTOs/DTOEntities/{ => Forces}/DistributedLoadDTO.cs (100%) rename DataAccess/DTOs/DTOEntities/{ => Forces}/FactoredCombinationPropertyDTO.cs (100%) rename DataAccess/DTOs/DTOEntities/{ => Forces}/FactoredForceTupleDTO.cs (100%) rename DataAccess/DTOs/DTOEntities/{ => Forces}/ForceCombinationFromFileDTO.cs (90%) rename DataAccess/DTOs/DTOEntities/{ => Forces}/ForceCombinationListDTO.cs (100%) rename DataAccess/DTOs/DTOEntities/{ => Forces}/ForceFactoredListDTO.cs (100%) rename DataAccess/DTOs/DTOEntities/{ => Forces}/ForceTupleDTO.cs (100%) rename DataAccess/DTOs/DTOEntities/{ => Materials}/ConcreteLibMaterialDTO.cs (100%) rename DataAccess/DTOs/DTOEntities/{ => Materials}/ElasticMaterialDTO.cs (100%) rename DataAccess/DTOs/DTOEntities/{ => Materials}/FRMaterialDTO.cs (100%) rename DataAccess/DTOs/DTOEntities/{ => Materials}/HeadMaterialDTO.cs (100%) rename DataAccess/DTOs/DTOEntities/{ => Materials}/MaterialPartialFactorDTO.cs (100%) rename DataAccess/DTOs/DTOEntities/{ => Materials}/MaterialSafetyFactorDTO.cs (100%) rename DataAccess/DTOs/DTOEntities/{ => Materials}/ReinforcementLibMaterialDTO.cs (100%) rename DataAccess/DTOs/DTOEntities/{ => NdmCrossSections}/CrackCalculatorDTO.cs (88%) rename DataAccess/DTOs/DTOEntities/{ => NdmCrossSections}/CrackCalculatorInputDataDTO.cs (100%) rename DataAccess/DTOs/DTOEntities/{ => NdmCrossSections}/CrossSectionDTO.cs (82%) rename DataAccess/DTOs/DTOEntities/{ => NdmCrossSections}/CrossSectionNdmAnalysisDTO.cs (100%) rename DataAccess/DTOs/DTOEntities/{ => NdmCrossSections}/CrossSectionRepositoryDTO.cs (100%) rename DataAccess/DTOs/DTOEntities/{ => NdmCrossSections}/EllipseNdmPrimitiveDTO.cs (91%) rename DataAccess/DTOs/DTOEntities/{ => NdmCrossSections}/ForceCalculatorDTO.cs (81%) rename DataAccess/DTOs/DTOEntities/{ => NdmCrossSections}/ForceCalculatorInputDataDTO.cs (100%) rename DataAccess/DTOs/DTOEntities/{ => NdmCrossSections}/NdmElementDTO.cs (84%) rename DataAccess/DTOs/DTOEntities/{ => NdmCrossSections}/PointNdmPrimitiveDTO.cs (98%) rename DataAccess/DTOs/DTOEntities/{ => NdmCrossSections}/RebarNdmPrimitiveDTO.cs (98%) rename DataAccess/DTOs/DTOEntities/{ => NdmCrossSections}/RectangleNdmPrimitiveDTO.cs (95%) rename DataAccess/DTOs/DTOEntities/{ => NdmCrossSections}/UserCrackInputDataDTO.cs (100%) create mode 100644 StructureHelperCommon/Models/Calculators/ILogicCalculator.cs delete mode 100644 StructureHelperLogics/NdmCalculations/Cracking/CrackForceSteppedSearchCalculator.cs diff --git a/DataAccess/DTOs/Converters/BeamShearActionConvertStrategy.cs b/DataAccess/DTOs/Converters/BeamShears/BeamShearActionConvertStrategy.cs similarity index 89% rename from DataAccess/DTOs/Converters/BeamShearActionConvertStrategy.cs rename to DataAccess/DTOs/Converters/BeamShears/BeamShearActionConvertStrategy.cs index 36e2b7c..ef9a062 100644 --- a/DataAccess/DTOs/Converters/BeamShearActionConvertStrategy.cs +++ b/DataAccess/DTOs/Converters/BeamShears/BeamShearActionConvertStrategy.cs @@ -36,13 +36,13 @@ namespace DataAccess.DTOs private void GetNewBeamAction(IBeamShearAction source) { - TraceLogger?.AddMessage($"Converting of beam shear action Id = {source.Id} has been started", TraceLogStatuses.Debug); + TraceLogger?.AddMessage($"Beam shear action converting Id = {source.Id} has been started", TraceLogStatuses.Debug); InitializeStrategies(); NewItem = new(source.Id); updateStrategy.Update(NewItem, source); NewItem.ExternalForce = factoredTupleConvertStrategy.Convert(source.ExternalForce); NewItem.SupportAction = axisActionConvertStrategy.Convert(source.SupportAction); - TraceLogger?.AddMessage($"Converting of beam shear action Id = {NewItem.Id} has been finished", TraceLogStatuses.Debug); + TraceLogger?.AddMessage($"Beam shear action converting Id = {NewItem.Id} has been finished", TraceLogStatuses.Debug); } private void InitializeStrategies() diff --git a/DataAccess/DTOs/Converters/BeamShearAnalysisToDTOConvertStrategy.cs b/DataAccess/DTOs/Converters/BeamShears/BeamShearAnalysisToDTOConvertStrategy.cs similarity index 100% rename from DataAccess/DTOs/Converters/BeamShearAnalysisToDTOConvertStrategy.cs rename to DataAccess/DTOs/Converters/BeamShears/BeamShearAnalysisToDTOConvertStrategy.cs diff --git a/DataAccess/DTOs/Converters/BeamShearAxisActionToDTOConvertStrategy.cs b/DataAccess/DTOs/Converters/BeamShears/BeamShearAxisActionToDTOConvertStrategy.cs similarity index 100% rename from DataAccess/DTOs/Converters/BeamShearAxisActionToDTOConvertStrategy.cs rename to DataAccess/DTOs/Converters/BeamShears/BeamShearAxisActionToDTOConvertStrategy.cs diff --git a/DataAccess/DTOs/Converters/BeamShears/BeamShearCalculatorInputDataToDTOConvertStrategy.cs b/DataAccess/DTOs/Converters/BeamShears/BeamShearCalculatorInputDataToDTOConvertStrategy.cs new file mode 100644 index 0000000..119a5f3 --- /dev/null +++ b/DataAccess/DTOs/Converters/BeamShears/BeamShearCalculatorInputDataToDTOConvertStrategy.cs @@ -0,0 +1,50 @@ +using StructureHelperCommon.Infrastructures.Interfaces; +using StructureHelperCommon.Models; +using StructureHelperLogics.Models.BeamShears; + +namespace DataAccess.DTOs +{ + public class BeamShearCalculatorInputDataToDTOConvertStrategy : ConvertStrategy + { + private IUpdateStrategy actionUpdateStrategy; + private IUpdateStrategy sectionUpdateStrategy; + private IUpdateStrategy stirrupUpdateStrategy; + + public BeamShearCalculatorInputDataToDTOConvertStrategy(IBaseConvertStrategy baseConvertStrategy) : base(baseConvertStrategy) + { + } + + public override BeamShearCalculatorInputDataDTO GetNewItem(IBeamShearCalculatorInputData source) + { + try + { + GetNewInputData(source); + return NewItem; + } + catch (Exception ex) + { + TraceErrorByEntity(this, ex.Message); + throw; + } + } + + private void GetNewInputData(IBeamShearCalculatorInputData source) + { + TraceLogger?.AddMessage($"Input data converting Id = {source.Id} has been started", TraceLogStatuses.Debug); + InitializeStrategies(); + NewItem = new(source.Id); + actionUpdateStrategy.Update(NewItem, source); + sectionUpdateStrategy.Update(NewItem, source); + stirrupUpdateStrategy.Update(NewItem, source); + TraceLogger?.AddMessage($"Input data converting Id = {NewItem.Id} has been finished", TraceLogStatuses.Debug); + + } + + private void InitializeStrategies() + { + actionUpdateStrategy ??= new HasBeamShearActionToDTOConvertStrategy(ReferenceDictionary, TraceLogger); + sectionUpdateStrategy ??= new HasBeamShearSectionToDTOConvertStrategy(ReferenceDictionary, TraceLogger); + stirrupUpdateStrategy ??= new HasStirrupToDTOConvertStrategy(ReferenceDictionary, TraceLogger); + } + } +} diff --git a/DataAccess/DTOs/Converters/BeamShears/BeamShearCalculatorToDTOConvertStrategy.cs b/DataAccess/DTOs/Converters/BeamShears/BeamShearCalculatorToDTOConvertStrategy.cs new file mode 100644 index 0000000..f913878 --- /dev/null +++ b/DataAccess/DTOs/Converters/BeamShears/BeamShearCalculatorToDTOConvertStrategy.cs @@ -0,0 +1,48 @@ +using StructureHelperCommon.Infrastructures.Interfaces; +using StructureHelperCommon.Models; +using StructureHelperLogics.Models.BeamShears; + +namespace DataAccess.DTOs +{ + public class BeamShearCalculatorToDTOConvertStrategy : ConvertStrategy + { + private IUpdateStrategy updateStrategy; + private IConvertStrategy inputDataConvertStrategy; + + public BeamShearCalculatorToDTOConvertStrategy(Dictionary<(Guid id, Type type), ISaveable> referenceDictionary, IShiftTraceLogger traceLogger) + : base(referenceDictionary, traceLogger) + { + } + + public override BeamShearCalculatorDTO GetNewItem(IBeamShearCalculator source) + { + try + { + GetNewCalculator(source); + return NewItem; + } + catch (Exception ex) + { + TraceErrorByEntity(this, ex.Message); + throw; + } + } + + private void GetNewCalculator(IBeamShearCalculator source) + { + TraceLogger?.AddMessage($"Beam shear calculator converting Id = {source.Id} has been started", TraceLogStatuses.Debug); + InitializeStrategies(); + NewItem = new(source.Id); + updateStrategy.Update(NewItem, source); + NewItem.InputData = inputDataConvertStrategy.Convert(source.InputData); + TraceLogger?.AddMessage($"Beam shear calculator converting Id = {NewItem.Id} has been finished successfully", TraceLogStatuses.Debug); + } + + private void InitializeStrategies() + { + updateStrategy ??= new BeamShearCalculatorUpdateStrategy(); + inputDataConvertStrategy = new DictionaryConvertStrategy + (this, new BeamShearCalculatorInputDataToDTOConvertStrategy(this)); + } + } +} diff --git a/DataAccess/DTOs/Converters/BeamShearRepositoryToDTOConvertStrategy.cs b/DataAccess/DTOs/Converters/BeamShears/BeamShearRepositoryToDTOConvertStrategy.cs similarity index 75% rename from DataAccess/DTOs/Converters/BeamShearRepositoryToDTOConvertStrategy.cs rename to DataAccess/DTOs/Converters/BeamShears/BeamShearRepositoryToDTOConvertStrategy.cs index 49f73f8..a1abab6 100644 --- a/DataAccess/DTOs/Converters/BeamShearRepositoryToDTOConvertStrategy.cs +++ b/DataAccess/DTOs/Converters/BeamShears/BeamShearRepositoryToDTOConvertStrategy.cs @@ -1,6 +1,7 @@ using DataAccess.DTOs.Converters; using StructureHelperCommon.Infrastructures.Interfaces; using StructureHelperCommon.Models; +using StructureHelperCommon.Models.Calculators; using StructureHelperCommon.Models.Forces; using StructureHelperCommon.Models.Forces.BeamShearActions; using StructureHelperLogics.Models.BeamShears; @@ -14,6 +15,8 @@ namespace DataAccess.DTOs { private IUpdateStrategy actionUpdateStrategy; private IUpdateStrategy sectionUpdateStrategy; + private IUpdateStrategy stirrupUpdateStrategy; + private IUpdateStrategy calculatorUpdateStrategy; public BeamShearRepositoryToDTOConvertStrategy(Dictionary<(Guid id, Type type), ISaveable> referenceDictionary, IShiftTraceLogger traceLogger) : base(referenceDictionary, traceLogger) { @@ -40,6 +43,8 @@ namespace DataAccess.DTOs NewItem = new(source.Id); actionUpdateStrategy.Update(NewItem, source); sectionUpdateStrategy.Update(NewItem, source); + stirrupUpdateStrategy.Update(NewItem, source); + calculatorUpdateStrategy.Update(NewItem, source); TraceLogger?.AddMessage($"Converting of beam shear repository Id = {NewItem.Id} has been finished", TraceLogStatuses.Service); } @@ -47,7 +52,9 @@ namespace DataAccess.DTOs private void InitializeStrategies() { actionUpdateStrategy ??= new HasBeamShearActionToDTOConvertStrategy(ReferenceDictionary, TraceLogger); - sectionUpdateStrategy ??= new HasBeamShearSectionConvertStrategy(ReferenceDictionary, TraceLogger); + sectionUpdateStrategy ??= new HasBeamShearSectionToDTOConvertStrategy(ReferenceDictionary, TraceLogger); + stirrupUpdateStrategy ??= new HasStirrupToDTOConvertStrategy(ReferenceDictionary, TraceLogger); + calculatorUpdateStrategy ??= new HasBeamShearCalculatorToDTOConvertStrategy(ReferenceDictionary, TraceLogger); } } } diff --git a/DataAccess/DTOs/Converters/BeamShears/BeamShearSectionToDTOConvertStrategy.cs b/DataAccess/DTOs/Converters/BeamShears/BeamShearSectionToDTOConvertStrategy.cs new file mode 100644 index 0000000..b06092a --- /dev/null +++ b/DataAccess/DTOs/Converters/BeamShears/BeamShearSectionToDTOConvertStrategy.cs @@ -0,0 +1,58 @@ +using StructureHelperCommon.Infrastructures.Interfaces; +using StructureHelperCommon.Models; +using StructureHelperCommon.Models.Materials; +using StructureHelperCommon.Models.Shapes; +using StructureHelperLogics.Models.BeamShears; + +namespace DataAccess.DTOs +{ + public class BeamShearSectionToDTOConvertStrategy : ConvertStrategy + { + private IUpdateStrategy updateStrategy; + private IConvertStrategy shapeConvertStrategy; + private ConcreteLibMaterialToDTOConvertStrategy concreteConvertStrategy; + private IUpdateStrategy safetyFactorUpdateStrategy; + + public BeamShearSectionToDTOConvertStrategy(Dictionary<(Guid id, Type type), ISaveable> referenceDictionary, IShiftTraceLogger traceLogger) + : base(referenceDictionary, traceLogger) + { + } + + public override BeamShearSectionDTO GetNewItem(IBeamShearSection source) + { + try + { + GetNewSection(source); + return NewItem; + } + catch (Exception ex) + { + TraceErrorByEntity(this, ex.Message); + throw; + } + } + + private void GetNewSection(IBeamShearSection source) + { + TraceLogger?.AddMessage($"Beam shear section converting Id = {source.Id} has been started", TraceLogStatuses.Debug); + InitializeStrategies(); + NewItem = new(source.Id); + updateStrategy.Update(NewItem, source); + NewItem.Shape = shapeConvertStrategy.Convert(source.Shape); + NewItem.Material = concreteConvertStrategy.Convert(source.Material); + safetyFactorUpdateStrategy.Update(NewItem.Material, source.Material); + TraceLogger?.AddMessage($"Beam shear section converting Id = {NewItem.Id} has been finished succesfully", TraceLogStatuses.Debug); + } + + private void InitializeStrategies() + { + updateStrategy ??= new BeamShearSectionUpdateStrategy(); + shapeConvertStrategy = new DictionaryConvertStrategy + (this, new ShapeToDTOConvertStrategy(this)); + concreteConvertStrategy = new ConcreteLibMaterialToDTOConvertStrategy() + { ReferenceDictionary = ReferenceDictionary, + TraceLogger = TraceLogger}; + safetyFactorUpdateStrategy = new HelperMaterialDTOSafetyFactorUpdateStrategy(new MaterialSafetyFactorToDTOLogic()); + } + } +} diff --git a/DataAccess/DTOs/Converters/BeamShearToDTOConvertStrategy.cs b/DataAccess/DTOs/Converters/BeamShears/BeamShearToDTOConvertStrategy.cs similarity index 100% rename from DataAccess/DTOs/Converters/BeamShearToDTOConvertStrategy.cs rename to DataAccess/DTOs/Converters/BeamShears/BeamShearToDTOConvertStrategy.cs diff --git a/DataAccess/DTOs/Converters/BeamSpanLoadToDTOConvertStrategy.cs b/DataAccess/DTOs/Converters/BeamShears/BeamSpanLoadToDTOConvertStrategy.cs similarity index 91% rename from DataAccess/DTOs/Converters/BeamSpanLoadToDTOConvertStrategy.cs rename to DataAccess/DTOs/Converters/BeamShears/BeamSpanLoadToDTOConvertStrategy.cs index 7bde042..27d3065 100644 --- a/DataAccess/DTOs/Converters/BeamSpanLoadToDTOConvertStrategy.cs +++ b/DataAccess/DTOs/Converters/BeamShears/BeamSpanLoadToDTOConvertStrategy.cs @@ -1,13 +1,7 @@ -using DataAccess.DTOs.DTOEntities; -using StructureHelperCommon.Infrastructures.Exceptions; +using StructureHelperCommon.Infrastructures.Exceptions; using StructureHelperCommon.Infrastructures.Interfaces; using StructureHelperCommon.Models; using StructureHelperCommon.Models.Forces; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace DataAccess.DTOs { @@ -29,7 +23,6 @@ namespace DataAccess.DTOs TraceErrorByEntity(this, ex.Message); throw; } - } private void GetNewBeamAction(IBeamSpanLoad source) diff --git a/DataAccess/DTOs/Converters/HasBeamShearActionToDTOConvertStrategy.cs b/DataAccess/DTOs/Converters/BeamShears/HasBeamShearActionToDTOConvertStrategy.cs similarity index 93% rename from DataAccess/DTOs/Converters/HasBeamShearActionToDTOConvertStrategy.cs rename to DataAccess/DTOs/Converters/BeamShears/HasBeamShearActionToDTOConvertStrategy.cs index d91b579..df63ac8 100644 --- a/DataAccess/DTOs/Converters/HasBeamShearActionToDTOConvertStrategy.cs +++ b/DataAccess/DTOs/Converters/BeamShears/HasBeamShearActionToDTOConvertStrategy.cs @@ -2,11 +2,6 @@ using StructureHelperCommon.Models; using StructureHelperCommon.Models.Forces; using StructureHelperCommon.Services; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace DataAccess.DTOs { diff --git a/DataAccess/DTOs/Converters/BeamShears/HasBeamShearCalculatorToDTOConvertStrategy.cs b/DataAccess/DTOs/Converters/BeamShears/HasBeamShearCalculatorToDTOConvertStrategy.cs new file mode 100644 index 0000000..63b67a3 --- /dev/null +++ b/DataAccess/DTOs/Converters/BeamShears/HasBeamShearCalculatorToDTOConvertStrategy.cs @@ -0,0 +1,64 @@ +using StructureHelperCommon.Infrastructures.Exceptions; +using StructureHelperCommon.Infrastructures.Interfaces; +using StructureHelperCommon.Models; +using StructureHelperCommon.Models.Calculators; +using StructureHelperCommon.Services; +using StructureHelperLogics.Models.BeamShears; + +namespace DataAccess.DTOs +{ + public class HasBeamShearCalculatorToDTOConvertStrategy : IUpdateStrategy + { + private Dictionary<(Guid id, Type type), ISaveable> referenceDictionary; + private IShiftTraceLogger traceLogger; + + public HasBeamShearCalculatorToDTOConvertStrategy(Dictionary<(Guid id, Type type), ISaveable> referenceDictionary, IShiftTraceLogger traceLogger) + { + this.referenceDictionary = referenceDictionary; + this.traceLogger = traceLogger; + } + + public void Update(IHasCalculators targetObject, IHasCalculators sourceObject) + { + CheckObject.IsNull(targetObject); + CheckObject.IsNull(sourceObject); + if (ReferenceEquals(targetObject, sourceObject)) { return; } + CheckObject.IsNull(sourceObject.Calculators); + CheckObject.IsNull(targetObject.Calculators); + targetObject.Calculators.Clear(); + List calculators = GetCalculators(sourceObject.Calculators); + targetObject.Calculators.AddRange(calculators); + } + + private List GetCalculators(IEnumerable sourceCalculators) + { + List calculators = new(); + foreach (var calculator in sourceCalculators) + { + ICalculator newCalculator = ProcessCalculator(calculator); + calculators.Add(newCalculator); + } + return calculators; + } + + private ICalculator ProcessCalculator(ICalculator calculator) + { + if (calculator is IBeamShearCalculator shearCalculator) + { + return ProcessShearCalculator(shearCalculator); + } + else + { + throw new StructureHelperException(ErrorStrings.ObjectTypeIsUnknownObj(calculator)); + } + } + + private ICalculator ProcessShearCalculator(IBeamShearCalculator shearCalculator) + { + traceLogger?.AddMessage("Calcultor is beam shear calculator", TraceLogStatuses.Debug); + var convertStrategy = new DictionaryConvertStrategy + (referenceDictionary, traceLogger, new BeamShearCalculatorToDTOConvertStrategy(referenceDictionary, traceLogger)); + return convertStrategy.Convert(shearCalculator); + } + } +} diff --git a/DataAccess/DTOs/Converters/HasBeamShearSectionConvertStrategy.cs b/DataAccess/DTOs/Converters/BeamShears/HasBeamShearSectionToDTOConvertStrategy.cs similarity index 51% rename from DataAccess/DTOs/Converters/HasBeamShearSectionConvertStrategy.cs rename to DataAccess/DTOs/Converters/BeamShears/HasBeamShearSectionToDTOConvertStrategy.cs index c6f390f..34f5e7c 100644 --- a/DataAccess/DTOs/Converters/HasBeamShearSectionConvertStrategy.cs +++ b/DataAccess/DTOs/Converters/BeamShears/HasBeamShearSectionToDTOConvertStrategy.cs @@ -5,11 +5,13 @@ using StructureHelperLogics.Models.BeamShears; namespace DataAccess.DTOs { - public class HasBeamShearSectionConvertStrategy : IUpdateStrategy + public class HasBeamShearSectionToDTOConvertStrategy : IUpdateStrategy { + private IConvertStrategy convertStrategy; private Dictionary<(Guid id, Type type), ISaveable> ReferenceDictionary { get; } private IShiftTraceLogger TraceLogger { get; } - public HasBeamShearSectionConvertStrategy(Dictionary<(Guid id, Type type), ISaveable> referenceDictionary, IShiftTraceLogger traceLogger) + + public HasBeamShearSectionToDTOConvertStrategy(Dictionary<(Guid id, Type type), ISaveable> referenceDictionary, IShiftTraceLogger traceLogger) { ReferenceDictionary = referenceDictionary; TraceLogger = traceLogger; @@ -22,7 +24,19 @@ namespace DataAccess.DTOs if (ReferenceEquals(targetObject, sourceObject)) { return; } CheckObject.IsNull(sourceObject.Sections); CheckObject.IsNull(targetObject.Sections); + InitializeStrategies(); targetObject.Sections.Clear(); + foreach (var section in sourceObject.Sections) + { + var newSection = convertStrategy.Convert(section); + targetObject.Sections.Add(newSection); + } + } + + private void InitializeStrategies() + { + convertStrategy = new DictionaryConvertStrategy + (ReferenceDictionary, TraceLogger, new BeamShearSectionToDTOConvertStrategy(ReferenceDictionary, TraceLogger)); } } } diff --git a/DataAccess/DTOs/Converters/BeamShears/HasStirrupToDTOConvertStrategy.cs b/DataAccess/DTOs/Converters/BeamShears/HasStirrupToDTOConvertStrategy.cs new file mode 100644 index 0000000..53413e2 --- /dev/null +++ b/DataAccess/DTOs/Converters/BeamShears/HasStirrupToDTOConvertStrategy.cs @@ -0,0 +1,84 @@ +using StructureHelperCommon.Infrastructures.Exceptions; +using StructureHelperCommon.Infrastructures.Interfaces; +using StructureHelperCommon.Models; +using StructureHelperCommon.Services; +using StructureHelperLogics.Models.BeamShears; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using static System.Windows.Forms.VisualStyles.VisualStyleElement; + +namespace DataAccess.DTOs +{ + public class HasStirrupToDTOConvertStrategy : IUpdateStrategy + { + private Dictionary<(Guid id, Type type), ISaveable> referenceDictionary; + private IShiftTraceLogger traceLogger; + + public HasStirrupToDTOConvertStrategy(Dictionary<(Guid id, Type type), ISaveable> referenceDictionary, IShiftTraceLogger traceLogger) + { + this.referenceDictionary = referenceDictionary; + this.traceLogger = traceLogger; + } + + public void Update(IHasStirrups targetObject, IHasStirrups sourceObject) + { + CheckObject.IsNull(targetObject); + CheckObject.IsNull(sourceObject); + if (ReferenceEquals(targetObject, sourceObject)) { return; } + CheckObject.IsNull(sourceObject.Stirrups); + CheckObject.IsNull(targetObject.Stirrups); + targetObject.Stirrups.Clear(); + List stirrups = GetStirrups(sourceObject.Stirrups); + targetObject.Stirrups.AddRange(stirrups); + } + + private List GetStirrups(IEnumerable sourceStirrups) + { + List stirrups = new(); + foreach (var stirrup in sourceStirrups) + { + IStirrup newItem = ProcessStirrup(stirrup); + stirrups.Add(newItem); + } + return stirrups; + } + + private IStirrup ProcessStirrup(IStirrup stirrup) + { + IStirrup newItem; + if (stirrup is IStirrupByRebar rebar) + { + newItem = ProcessRebar(rebar); + } + else if (stirrup is IStirrupByDensity density) + { + newItem = ProcessDensity(density); + } + else + { + throw new StructureHelperException(ErrorStrings.ObjectTypeIsUnknownObj(stirrup)); + } + + return newItem; + } + + private IStirrup ProcessDensity(IStirrupByDensity density) + { + traceLogger?.AddMessage("Stirrup is stirrup by density"); + var convertStrategy = new DictionaryConvertStrategy + (referenceDictionary, traceLogger, new StirrupByDensityToDTOConvertStrategy(referenceDictionary, traceLogger)); + return convertStrategy.Convert(density); + } + + private StirrupByRebarDTO ProcessRebar(IStirrupByRebar rebar) + { + traceLogger?.AddMessage("Stirrup is stirrup by rebar"); + var convertStrategy = new DictionaryConvertStrategy + (referenceDictionary, traceLogger, new StirrupByRebarToDTOConvertStrategy(referenceDictionary, traceLogger)); + return convertStrategy.Convert(rebar); + } + } +} diff --git a/DataAccess/DTOs/Converters/BeamShears/StirrupByDensityToDTOConvertStrategy.cs b/DataAccess/DTOs/Converters/BeamShears/StirrupByDensityToDTOConvertStrategy.cs new file mode 100644 index 0000000..85a8aa7 --- /dev/null +++ b/DataAccess/DTOs/Converters/BeamShears/StirrupByDensityToDTOConvertStrategy.cs @@ -0,0 +1,44 @@ +using StructureHelperCommon.Infrastructures.Interfaces; +using StructureHelperCommon.Models; +using StructureHelperLogics.Models.BeamShears; + +namespace DataAccess.DTOs +{ + public class StirrupByDensityToDTOConvertStrategy : ConvertStrategy + { + private IUpdateStrategy updateStrategy; + + public StirrupByDensityToDTOConvertStrategy(Dictionary<(Guid id, Type type), ISaveable> referenceDictionary, IShiftTraceLogger traceLogger) + : base(referenceDictionary, traceLogger) + { + } + + public override StirrupByDensityDTO GetNewItem(IStirrupByDensity source) + { + try + { + GetNewStirrup(source); + return NewItem; + } + catch (Exception ex) + { + TraceErrorByEntity(this, ex.Message); + throw; + } + } + + private void GetNewStirrup(IStirrupByDensity source) + { + TraceLogger?.AddMessage($"Stirrup by density converting Id = {source.Id} has been started", TraceLogStatuses.Debug); + InitializeStrategies(); + NewItem = new(source.Id); + updateStrategy.Update(NewItem, source); + TraceLogger?.AddMessage($"Stirrup by density converting Id = {NewItem.Id} has been finished succesfully", TraceLogStatuses.Debug); + } + + private void InitializeStrategies() + { + updateStrategy ??= new StirrupByDensityUpdateStrategy(); + } + } +} diff --git a/DataAccess/DTOs/Converters/BeamShears/StirrupByRebarToDTOConvertStrategy.cs b/DataAccess/DTOs/Converters/BeamShears/StirrupByRebarToDTOConvertStrategy.cs new file mode 100644 index 0000000..4238e1c --- /dev/null +++ b/DataAccess/DTOs/Converters/BeamShears/StirrupByRebarToDTOConvertStrategy.cs @@ -0,0 +1,54 @@ +using StructureHelperCommon.Infrastructures.Interfaces; +using StructureHelperCommon.Models; +using StructureHelperLogics.Models.BeamShears; + +namespace DataAccess.DTOs +{ + public class StirrupByRebarToDTOConvertStrategy : ConvertStrategy + { + private StirrupByRebarUpdateStrategy updateStrategy; + private ReinforcementLibMaterialToDTOConvertStrategy reinforcementConvertStrategy; + private HelperMaterialDTOSafetyFactorUpdateStrategy safetyFactorUpdateStrategy; + + public StirrupByRebarToDTOConvertStrategy(Dictionary<(Guid id, Type type), ISaveable> referenceDictionary, IShiftTraceLogger traceLogger) + : base(referenceDictionary, traceLogger) + { + } + + public override StirrupByRebarDTO GetNewItem(IStirrupByRebar source) + { + try + { + GetNewStirrup(source); + return NewItem; + } + catch (Exception ex) + { + TraceErrorByEntity(this, ex.Message); + throw; + } + } + + private void GetNewStirrup(IStirrupByRebar source) + { + TraceLogger?.AddMessage($"Stirrup by density converting Id = {source.Id} has been started", TraceLogStatuses.Debug); + InitializeStrategies(); + NewItem = new(source.Id); + updateStrategy.Update(NewItem, source); + NewItem.Material = reinforcementConvertStrategy.Convert(source.Material); + safetyFactorUpdateStrategy.Update(NewItem.Material, source.Material); + TraceLogger?.AddMessage($"Stirrup by density converting Id = {NewItem.Id} has been finished succesfully", TraceLogStatuses.Debug); + } + + private void InitializeStrategies() + { + updateStrategy ??= new StirrupByRebarUpdateStrategy(); + reinforcementConvertStrategy = new ReinforcementLibMaterialToDTOConvertStrategy() + { + ReferenceDictionary = ReferenceDictionary, + TraceLogger = TraceLogger + }; + safetyFactorUpdateStrategy = new HelperMaterialDTOSafetyFactorUpdateStrategy(new MaterialSafetyFactorToDTOLogic()); + } + } +} diff --git a/DataAccess/DTOs/Converters/ConcentratedForceToDTOConvertStrategy.cs b/DataAccess/DTOs/Converters/Forces/ConcentratedForceToDTOConvertStrategy.cs similarity index 100% rename from DataAccess/DTOs/Converters/ConcentratedForceToDTOConvertStrategy.cs rename to DataAccess/DTOs/Converters/Forces/ConcentratedForceToDTOConvertStrategy.cs diff --git a/DataAccess/DTOs/Converters/DistributedLoadToDTOConvertStrategy.cs b/DataAccess/DTOs/Converters/Forces/DistributedLoadToDTOConvertStrategy.cs similarity index 100% rename from DataAccess/DTOs/Converters/DistributedLoadToDTOConvertStrategy.cs rename to DataAccess/DTOs/Converters/Forces/DistributedLoadToDTOConvertStrategy.cs diff --git a/DataAccess/DTOs/Converters/FactoredCombinationPropertyFromDTOConvertStrategy.cs b/DataAccess/DTOs/Converters/Forces/FactoredCombinationPropertyFromDTOConvertStrategy.cs similarity index 100% rename from DataAccess/DTOs/Converters/FactoredCombinationPropertyFromDTOConvertStrategy.cs rename to DataAccess/DTOs/Converters/Forces/FactoredCombinationPropertyFromDTOConvertStrategy.cs diff --git a/DataAccess/DTOs/Converters/FactoredCombinationPropertyToDTOConvertStrategy.cs b/DataAccess/DTOs/Converters/Forces/FactoredCombinationPropertyToDTOConvertStrategy.cs similarity index 100% rename from DataAccess/DTOs/Converters/FactoredCombinationPropertyToDTOConvertStrategy.cs rename to DataAccess/DTOs/Converters/Forces/FactoredCombinationPropertyToDTOConvertStrategy.cs diff --git a/DataAccess/DTOs/Converters/FactoredForceTupleToDTOConvertStrategy.cs b/DataAccess/DTOs/Converters/Forces/FactoredForceTupleToDTOConvertStrategy.cs similarity index 100% rename from DataAccess/DTOs/Converters/FactoredForceTupleToDTOConvertStrategy.cs rename to DataAccess/DTOs/Converters/Forces/FactoredForceTupleToDTOConvertStrategy.cs diff --git a/DataAccess/DTOs/Converters/ForceActionFromDTOConvertStrategy.cs b/DataAccess/DTOs/Converters/Forces/ForceActionFromDTOConvertStrategy.cs similarity index 100% rename from DataAccess/DTOs/Converters/ForceActionFromDTOConvertStrategy.cs rename to DataAccess/DTOs/Converters/Forces/ForceActionFromDTOConvertStrategy.cs diff --git a/DataAccess/DTOs/Converters/ForceActionToDTOConvertStrategy.cs b/DataAccess/DTOs/Converters/Forces/ForceActionToDTOConvertStrategy.cs similarity index 100% rename from DataAccess/DTOs/Converters/ForceActionToDTOConvertStrategy.cs rename to DataAccess/DTOs/Converters/Forces/ForceActionToDTOConvertStrategy.cs diff --git a/DataAccess/DTOs/Converters/ForceCombinaionFromFileToDTOConvertStrategy.cs b/DataAccess/DTOs/Converters/Forces/ForceCombinaionFromFileToDTOConvertStrategy.cs similarity index 100% rename from DataAccess/DTOs/Converters/ForceCombinaionFromFileToDTOConvertStrategy.cs rename to DataAccess/DTOs/Converters/Forces/ForceCombinaionFromFileToDTOConvertStrategy.cs diff --git a/DataAccess/DTOs/Converters/ForceCombinationFromFileFromDTOConvertStrategy.cs b/DataAccess/DTOs/Converters/Forces/ForceCombinationFromFileFromDTOConvertStrategy.cs similarity index 100% rename from DataAccess/DTOs/Converters/ForceCombinationFromFileFromDTOConvertStrategy.cs rename to DataAccess/DTOs/Converters/Forces/ForceCombinationFromFileFromDTOConvertStrategy.cs diff --git a/DataAccess/DTOs/Converters/ForceCombinationListFromDTOConvertStrategy.cs b/DataAccess/DTOs/Converters/Forces/ForceCombinationListFromDTOConvertStrategy.cs similarity index 100% rename from DataAccess/DTOs/Converters/ForceCombinationListFromDTOConvertStrategy.cs rename to DataAccess/DTOs/Converters/Forces/ForceCombinationListFromDTOConvertStrategy.cs diff --git a/DataAccess/DTOs/Converters/ForceCombinationListToDTOConvertStrategy.cs b/DataAccess/DTOs/Converters/Forces/ForceCombinationListToDTOConvertStrategy.cs similarity index 100% rename from DataAccess/DTOs/Converters/ForceCombinationListToDTOConvertStrategy.cs rename to DataAccess/DTOs/Converters/Forces/ForceCombinationListToDTOConvertStrategy.cs diff --git a/DataAccess/DTOs/Converters/ForceFactoredListFromDTOConvertStrategy.cs b/DataAccess/DTOs/Converters/Forces/ForceFactoredListFromDTOConvertStrategy.cs similarity index 100% rename from DataAccess/DTOs/Converters/ForceFactoredListFromDTOConvertStrategy.cs rename to DataAccess/DTOs/Converters/Forces/ForceFactoredListFromDTOConvertStrategy.cs diff --git a/DataAccess/DTOs/Converters/ForceFactoredListToDTOConvertStrategy.cs b/DataAccess/DTOs/Converters/Forces/ForceFactoredListToDTOConvertStrategy.cs similarity index 100% rename from DataAccess/DTOs/Converters/ForceFactoredListToDTOConvertStrategy.cs rename to DataAccess/DTOs/Converters/Forces/ForceFactoredListToDTOConvertStrategy.cs diff --git a/DataAccess/DTOs/Converters/ForceTupleFromDTOConvertStrategy.cs b/DataAccess/DTOs/Converters/Forces/ForceTupleFromDTOConvertStrategy.cs similarity index 100% rename from DataAccess/DTOs/Converters/ForceTupleFromDTOConvertStrategy.cs rename to DataAccess/DTOs/Converters/Forces/ForceTupleFromDTOConvertStrategy.cs diff --git a/DataAccess/DTOs/Converters/ForceTupleToDTOConvertStrategy.cs b/DataAccess/DTOs/Converters/Forces/ForceTupleToDTOConvertStrategy.cs similarity index 100% rename from DataAccess/DTOs/Converters/ForceTupleToDTOConvertStrategy.cs rename to DataAccess/DTOs/Converters/Forces/ForceTupleToDTOConvertStrategy.cs diff --git a/DataAccess/DTOs/Converters/ConcreteLibMaterialFromDTOConvertStrategy.cs b/DataAccess/DTOs/Converters/Materials/ConcreteLibMaterialFromDTOConvertStrategy.cs similarity index 100% rename from DataAccess/DTOs/Converters/ConcreteLibMaterialFromDTOConvertStrategy.cs rename to DataAccess/DTOs/Converters/Materials/ConcreteLibMaterialFromDTOConvertStrategy.cs diff --git a/DataAccess/DTOs/Converters/ConcreteLibMaterialToDTOConvertStrategy.cs b/DataAccess/DTOs/Converters/Materials/ConcreteLibMaterialToDTOConvertStrategy.cs similarity index 84% rename from DataAccess/DTOs/Converters/ConcreteLibMaterialToDTOConvertStrategy.cs rename to DataAccess/DTOs/Converters/Materials/ConcreteLibMaterialToDTOConvertStrategy.cs index 2f66a14..b1aaee0 100644 --- a/DataAccess/DTOs/Converters/ConcreteLibMaterialToDTOConvertStrategy.cs +++ b/DataAccess/DTOs/Converters/Materials/ConcreteLibMaterialToDTOConvertStrategy.cs @@ -1,15 +1,11 @@ using StructureHelperCommon.Infrastructures.Interfaces; using StructureHelperLogics.Models.Materials; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace DataAccess.DTOs { public class ConcreteLibMaterialToDTOConvertStrategy : LibMaterialToDTOConvertStrategy { + public override IUpdateStrategy UpdateStrategy { get; } = new ConcreteLibUpdateStrategy(); public override ConcreteLibMaterialDTO GetMaterialDTO(IConcreteLibMaterial source) diff --git a/DataAccess/DTOs/Converters/ElasticMaterialFromDTOConvertStrategy.cs b/DataAccess/DTOs/Converters/Materials/ElasticMaterialFromDTOConvertStrategy.cs similarity index 100% rename from DataAccess/DTOs/Converters/ElasticMaterialFromDTOConvertStrategy.cs rename to DataAccess/DTOs/Converters/Materials/ElasticMaterialFromDTOConvertStrategy.cs diff --git a/DataAccess/DTOs/Converters/ElasticMaterialToDTOConvertStrategy.cs b/DataAccess/DTOs/Converters/Materials/ElasticMaterialToDTOConvertStrategy.cs similarity index 100% rename from DataAccess/DTOs/Converters/ElasticMaterialToDTOConvertStrategy.cs rename to DataAccess/DTOs/Converters/Materials/ElasticMaterialToDTOConvertStrategy.cs diff --git a/DataAccess/DTOs/Converters/HasMaterialFromDTOUpdateStrategy.cs b/DataAccess/DTOs/Converters/Materials/HasMaterialFromDTOUpdateStrategy.cs similarity index 100% rename from DataAccess/DTOs/Converters/HasMaterialFromDTOUpdateStrategy.cs rename to DataAccess/DTOs/Converters/Materials/HasMaterialFromDTOUpdateStrategy.cs diff --git a/DataAccess/DTOs/Converters/HeadMaterialFromDTOConvertStrategy.cs b/DataAccess/DTOs/Converters/Materials/HeadMaterialFromDTOConvertStrategy.cs similarity index 100% rename from DataAccess/DTOs/Converters/HeadMaterialFromDTOConvertStrategy.cs rename to DataAccess/DTOs/Converters/Materials/HeadMaterialFromDTOConvertStrategy.cs diff --git a/DataAccess/DTOs/Converters/HeadMaterialToDTOConvertStrategy.cs b/DataAccess/DTOs/Converters/Materials/HeadMaterialToDTOConvertStrategy.cs similarity index 100% rename from DataAccess/DTOs/Converters/HeadMaterialToDTOConvertStrategy.cs rename to DataAccess/DTOs/Converters/Materials/HeadMaterialToDTOConvertStrategy.cs diff --git a/DataAccess/DTOs/Converters/HelperMaterialDTOSafetyFactorUpdateStrategy.cs b/DataAccess/DTOs/Converters/Materials/HelperMaterialDTOSafetyFactorUpdateStrategy.cs similarity index 100% rename from DataAccess/DTOs/Converters/HelperMaterialDTOSafetyFactorUpdateStrategy.cs rename to DataAccess/DTOs/Converters/Materials/HelperMaterialDTOSafetyFactorUpdateStrategy.cs diff --git a/DataAccess/DTOs/Converters/HelperMaterialFromDTOConvertStrategy.cs b/DataAccess/DTOs/Converters/Materials/HelperMaterialFromDTOConvertStrategy.cs similarity index 100% rename from DataAccess/DTOs/Converters/HelperMaterialFromDTOConvertStrategy.cs rename to DataAccess/DTOs/Converters/Materials/HelperMaterialFromDTOConvertStrategy.cs diff --git a/DataAccess/DTOs/Converters/HelperMaterialToDTOConvertStrategy.cs b/DataAccess/DTOs/Converters/Materials/HelperMaterialToDTOConvertStrategy.cs similarity index 94% rename from DataAccess/DTOs/Converters/HelperMaterialToDTOConvertStrategy.cs rename to DataAccess/DTOs/Converters/Materials/HelperMaterialToDTOConvertStrategy.cs index 5f60232..dbc7014 100644 --- a/DataAccess/DTOs/Converters/HelperMaterialToDTOConvertStrategy.cs +++ b/DataAccess/DTOs/Converters/Materials/HelperMaterialToDTOConvertStrategy.cs @@ -1,17 +1,9 @@ -using DataAccess.DTOs.Converters; -using StructureHelperCommon.Infrastructures.Exceptions; +using StructureHelperCommon.Infrastructures.Exceptions; using StructureHelperCommon.Infrastructures.Interfaces; using StructureHelperCommon.Models; using StructureHelperCommon.Models.Loggers; using StructureHelperCommon.Models.Materials; -using StructureHelperLogics.Models.CrossSections; using StructureHelperLogics.Models.Materials; -using StructureHelperLogics.Models.Materials.Logics; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace DataAccess.DTOs { diff --git a/DataAccess/DTOs/Converters/MaterialSafetyFactorToDTOLogic.cs b/DataAccess/DTOs/Converters/Materials/MaterialSafetyFactorToDTOLogic.cs similarity index 100% rename from DataAccess/DTOs/Converters/MaterialSafetyFactorToDTOLogic.cs rename to DataAccess/DTOs/Converters/Materials/MaterialSafetyFactorToDTOLogic.cs diff --git a/DataAccess/DTOs/Converters/MaterialSafetyFactorsToDTOConvertStrategy.cs b/DataAccess/DTOs/Converters/Materials/MaterialSafetyFactorsToDTOConvertStrategy.cs similarity index 88% rename from DataAccess/DTOs/Converters/MaterialSafetyFactorsToDTOConvertStrategy.cs rename to DataAccess/DTOs/Converters/Materials/MaterialSafetyFactorsToDTOConvertStrategy.cs index 72f1b2e..3c09a58 100644 --- a/DataAccess/DTOs/Converters/MaterialSafetyFactorsToDTOConvertStrategy.cs +++ b/DataAccess/DTOs/Converters/Materials/MaterialSafetyFactorsToDTOConvertStrategy.cs @@ -1,11 +1,6 @@ using StructureHelperCommon.Infrastructures.Interfaces; using StructureHelperCommon.Models; using StructureHelperCommon.Models.Materials.Libraries; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace DataAccess.DTOs { diff --git a/DataAccess/DTOs/Converters/ReinforcementLibMaterialFromDTOConvertStrategy.cs b/DataAccess/DTOs/Converters/Materials/ReinforcementLibMaterialFromDTOConvertStrategy.cs similarity index 100% rename from DataAccess/DTOs/Converters/ReinforcementLibMaterialFromDTOConvertStrategy.cs rename to DataAccess/DTOs/Converters/Materials/ReinforcementLibMaterialFromDTOConvertStrategy.cs diff --git a/DataAccess/DTOs/Converters/ReinforcementLibMaterialToDTOConvertStrategy.cs b/DataAccess/DTOs/Converters/Materials/ReinforcementLibMaterialToDTOConvertStrategy.cs similarity index 100% rename from DataAccess/DTOs/Converters/ReinforcementLibMaterialToDTOConvertStrategy.cs rename to DataAccess/DTOs/Converters/Materials/ReinforcementLibMaterialToDTOConvertStrategy.cs diff --git a/DataAccess/DTOs/Converters/CrackCalculatorFromDTOConvertStrategy.cs b/DataAccess/DTOs/Converters/NdmCrossSections/CrackCalculatorFromDTOConvertStrategy.cs similarity index 100% rename from DataAccess/DTOs/Converters/CrackCalculatorFromDTOConvertStrategy.cs rename to DataAccess/DTOs/Converters/NdmCrossSections/CrackCalculatorFromDTOConvertStrategy.cs diff --git a/DataAccess/DTOs/Converters/CrackCalculatorInputDataFromDTOConvertStrategy.cs b/DataAccess/DTOs/Converters/NdmCrossSections/CrackCalculatorInputDataFromDTOConvertStrategy.cs similarity index 100% rename from DataAccess/DTOs/Converters/CrackCalculatorInputDataFromDTOConvertStrategy.cs rename to DataAccess/DTOs/Converters/NdmCrossSections/CrackCalculatorInputDataFromDTOConvertStrategy.cs diff --git a/DataAccess/DTOs/Converters/CrackCalculatorInputDataToDTOConvertStrategy.cs b/DataAccess/DTOs/Converters/NdmCrossSections/CrackCalculatorInputDataToDTOConvertStrategy.cs similarity index 100% rename from DataAccess/DTOs/Converters/CrackCalculatorInputDataToDTOConvertStrategy.cs rename to DataAccess/DTOs/Converters/NdmCrossSections/CrackCalculatorInputDataToDTOConvertStrategy.cs diff --git a/DataAccess/DTOs/Converters/CrackCalculatorToDTOConvertStrategy.cs b/DataAccess/DTOs/Converters/NdmCrossSections/CrackCalculatorToDTOConvertStrategy.cs similarity index 100% rename from DataAccess/DTOs/Converters/CrackCalculatorToDTOConvertStrategy.cs rename to DataAccess/DTOs/Converters/NdmCrossSections/CrackCalculatorToDTOConvertStrategy.cs diff --git a/DataAccess/DTOs/Converters/CrossSectionFromDTOConvertStrategy.cs b/DataAccess/DTOs/Converters/NdmCrossSections/CrossSectionFromDTOConvertStrategy.cs similarity index 100% rename from DataAccess/DTOs/Converters/CrossSectionFromDTOConvertStrategy.cs rename to DataAccess/DTOs/Converters/NdmCrossSections/CrossSectionFromDTOConvertStrategy.cs diff --git a/DataAccess/DTOs/Converters/CrossSectionNdmAnalysisFromDTOConvertStrategy.cs b/DataAccess/DTOs/Converters/NdmCrossSections/CrossSectionNdmAnalysisFromDTOConvertStrategy.cs similarity index 100% rename from DataAccess/DTOs/Converters/CrossSectionNdmAnalysisFromDTOConvertStrategy.cs rename to DataAccess/DTOs/Converters/NdmCrossSections/CrossSectionNdmAnalysisFromDTOConvertStrategy.cs diff --git a/DataAccess/DTOs/Converters/CrossSectionNdmAnalysisToDTOConvertStrategy.cs b/DataAccess/DTOs/Converters/NdmCrossSections/CrossSectionNdmAnalysisToDTOConvertStrategy.cs similarity index 100% rename from DataAccess/DTOs/Converters/CrossSectionNdmAnalysisToDTOConvertStrategy.cs rename to DataAccess/DTOs/Converters/NdmCrossSections/CrossSectionNdmAnalysisToDTOConvertStrategy.cs diff --git a/DataAccess/DTOs/Converters/CrossSectionRepositoryFromDTOConvertStrategy.cs b/DataAccess/DTOs/Converters/NdmCrossSections/CrossSectionRepositoryFromDTOConvertStrategy.cs similarity index 100% rename from DataAccess/DTOs/Converters/CrossSectionRepositoryFromDTOConvertStrategy.cs rename to DataAccess/DTOs/Converters/NdmCrossSections/CrossSectionRepositoryFromDTOConvertStrategy.cs diff --git a/DataAccess/DTOs/Converters/CrossSectionRepositoryToDTOConvertStrategy.cs b/DataAccess/DTOs/Converters/NdmCrossSections/CrossSectionRepositoryToDTOConvertStrategy.cs similarity index 100% rename from DataAccess/DTOs/Converters/CrossSectionRepositoryToDTOConvertStrategy.cs rename to DataAccess/DTOs/Converters/NdmCrossSections/CrossSectionRepositoryToDTOConvertStrategy.cs diff --git a/DataAccess/DTOs/Converters/CrossSectionToDTOConvertStrategy.cs b/DataAccess/DTOs/Converters/NdmCrossSections/CrossSectionToDTOConvertStrategy.cs similarity index 100% rename from DataAccess/DTOs/Converters/CrossSectionToDTOConvertStrategy.cs rename to DataAccess/DTOs/Converters/NdmCrossSections/CrossSectionToDTOConvertStrategy.cs diff --git a/DataAccess/DTOs/Converters/EllipseNdmPrimitiveFromDTOConvertStrategy.cs b/DataAccess/DTOs/Converters/NdmCrossSections/EllipseNdmPrimitiveFromDTOConvertStrategy.cs similarity index 100% rename from DataAccess/DTOs/Converters/EllipseNdmPrimitiveFromDTOConvertStrategy.cs rename to DataAccess/DTOs/Converters/NdmCrossSections/EllipseNdmPrimitiveFromDTOConvertStrategy.cs diff --git a/DataAccess/DTOs/Converters/EllipseNdmPrimitiveToDTOConvertStrategy.cs b/DataAccess/DTOs/Converters/NdmCrossSections/EllipseNdmPrimitiveToDTOConvertStrategy.cs similarity index 98% rename from DataAccess/DTOs/Converters/EllipseNdmPrimitiveToDTOConvertStrategy.cs rename to DataAccess/DTOs/Converters/NdmCrossSections/EllipseNdmPrimitiveToDTOConvertStrategy.cs index 675ec0b..6927a57 100644 --- a/DataAccess/DTOs/Converters/EllipseNdmPrimitiveToDTOConvertStrategy.cs +++ b/DataAccess/DTOs/Converters/NdmCrossSections/EllipseNdmPrimitiveToDTOConvertStrategy.cs @@ -40,7 +40,7 @@ namespace DataAccess.DTOs public EllipseNdmPrimitiveToDTOConvertStrategy() : this( new EllipsePrimitiveUpdateStrategy(), new RectangleShapeToDTOConvertStrategy(), - new NdmElementDTOConvertStrategy(), + new NdmElementToDTOConvertStrategy(), new Point2DToDTOConvertStrategy(), new VisualPropertyToDTOConvertStrategy(), new DivisionSizeToDTOConvertStrategy() diff --git a/DataAccess/DTOs/Converters/ForceCalculatorFromDTOConvertStrategy.cs b/DataAccess/DTOs/Converters/NdmCrossSections/ForceCalculatorFromDTOConvertStrategy.cs similarity index 100% rename from DataAccess/DTOs/Converters/ForceCalculatorFromDTOConvertStrategy.cs rename to DataAccess/DTOs/Converters/NdmCrossSections/ForceCalculatorFromDTOConvertStrategy.cs diff --git a/DataAccess/DTOs/Converters/ForceCalculatorInputDataFromDTOConvertStrategy.cs b/DataAccess/DTOs/Converters/NdmCrossSections/ForceCalculatorInputDataFromDTOConvertStrategy.cs similarity index 100% rename from DataAccess/DTOs/Converters/ForceCalculatorInputDataFromDTOConvertStrategy.cs rename to DataAccess/DTOs/Converters/NdmCrossSections/ForceCalculatorInputDataFromDTOConvertStrategy.cs diff --git a/DataAccess/DTOs/Converters/ForceCalculatorInputDataToDTOConvertStrategy.cs b/DataAccess/DTOs/Converters/NdmCrossSections/ForceCalculatorInputDataToDTOConvertStrategy.cs similarity index 100% rename from DataAccess/DTOs/Converters/ForceCalculatorInputDataToDTOConvertStrategy.cs rename to DataAccess/DTOs/Converters/NdmCrossSections/ForceCalculatorInputDataToDTOConvertStrategy.cs diff --git a/DataAccess/DTOs/Converters/ForceCalculatorToDTOConvertStrategy.cs b/DataAccess/DTOs/Converters/NdmCrossSections/ForceCalculatorToDTOConvertStrategy.cs similarity index 97% rename from DataAccess/DTOs/Converters/ForceCalculatorToDTOConvertStrategy.cs rename to DataAccess/DTOs/Converters/NdmCrossSections/ForceCalculatorToDTOConvertStrategy.cs index 4c4430f..d8c59d5 100644 --- a/DataAccess/DTOs/Converters/ForceCalculatorToDTOConvertStrategy.cs +++ b/DataAccess/DTOs/Converters/NdmCrossSections/ForceCalculatorToDTOConvertStrategy.cs @@ -42,7 +42,7 @@ namespace DataAccess.DTOs private void GetNewItemBySource(IForceCalculator source) { - NewItem = new() { Id = source.Id}; + NewItem = new(source.Id); updateStrategy.Update(NewItem, source); NewItem.InputData = inputDataConvertStrategy.Convert(source.InputData); } diff --git a/DataAccess/DTOs/Converters/NdmElementDTOConvertStrategy.cs b/DataAccess/DTOs/Converters/NdmCrossSections/NdmElementToDTOConvertStrategy.cs similarity index 91% rename from DataAccess/DTOs/Converters/NdmElementDTOConvertStrategy.cs rename to DataAccess/DTOs/Converters/NdmCrossSections/NdmElementToDTOConvertStrategy.cs index 08b6e79..baddf98 100644 --- a/DataAccess/DTOs/Converters/NdmElementDTOConvertStrategy.cs +++ b/DataAccess/DTOs/Converters/NdmCrossSections/NdmElementToDTOConvertStrategy.cs @@ -9,13 +9,13 @@ using StructureHelperLogics.NdmCalculations.Primitives.Logics; namespace DataAccess.DTOs { - public class NdmElementDTOConvertStrategy : IConvertStrategy + public class NdmElementToDTOConvertStrategy : IConvertStrategy { private IUpdateStrategy updateStrategy; private IConvertStrategy headMaterialConvertStrategy; private IUpdateStrategy forceUpdateStrategy = new ForceTupleUpdateStrategy(); - public NdmElementDTOConvertStrategy( + public NdmElementToDTOConvertStrategy( IUpdateStrategy updateStrategy, IConvertStrategy headMaterialConvertStrategy) { @@ -23,7 +23,7 @@ namespace DataAccess.DTOs this.headMaterialConvertStrategy = headMaterialConvertStrategy; } - public NdmElementDTOConvertStrategy() : this( + public NdmElementToDTOConvertStrategy() : this( new NdmElementUpdateStrategy(), new HeadMaterialToDTOConvertStrategy()) { @@ -50,7 +50,7 @@ namespace DataAccess.DTOs private NdmElementDTO GenNewNdmElementDTO(INdmElement source) { - NdmElementDTO newItem = new() { Id = source.Id }; + NdmElementDTO newItem = new(source.Id); updateStrategy.Update(newItem, source); headMaterialConvertStrategy.ReferenceDictionary = ReferenceDictionary; headMaterialConvertStrategy.TraceLogger = TraceLogger; diff --git a/DataAccess/DTOs/Converters/NdmPrimitiveFromDTOConvertStrategy.cs b/DataAccess/DTOs/Converters/NdmCrossSections/NdmPrimitiveFromDTOConvertStrategy.cs similarity index 100% rename from DataAccess/DTOs/Converters/NdmPrimitiveFromDTOConvertStrategy.cs rename to DataAccess/DTOs/Converters/NdmCrossSections/NdmPrimitiveFromDTOConvertStrategy.cs diff --git a/DataAccess/DTOs/Converters/NdmPrimitiveToDTOConvertStrategy.cs b/DataAccess/DTOs/Converters/NdmCrossSections/NdmPrimitiveToDTOConvertStrategy.cs similarity index 100% rename from DataAccess/DTOs/Converters/NdmPrimitiveToDTOConvertStrategy.cs rename to DataAccess/DTOs/Converters/NdmCrossSections/NdmPrimitiveToDTOConvertStrategy.cs diff --git a/DataAccess/DTOs/Converters/PointNdmPrimitiveFromDTOConvertStrategy.cs b/DataAccess/DTOs/Converters/NdmCrossSections/PointNdmPrimitiveFromDTOConvertStrategy.cs similarity index 100% rename from DataAccess/DTOs/Converters/PointNdmPrimitiveFromDTOConvertStrategy.cs rename to DataAccess/DTOs/Converters/NdmCrossSections/PointNdmPrimitiveFromDTOConvertStrategy.cs diff --git a/DataAccess/DTOs/Converters/PointNdmPrimitiveToDTOConvertStrategy.cs b/DataAccess/DTOs/Converters/NdmCrossSections/PointNdmPrimitiveToDTOConvertStrategy.cs similarity index 98% rename from DataAccess/DTOs/Converters/PointNdmPrimitiveToDTOConvertStrategy.cs rename to DataAccess/DTOs/Converters/NdmCrossSections/PointNdmPrimitiveToDTOConvertStrategy.cs index 5858100..9e20c82 100644 --- a/DataAccess/DTOs/Converters/PointNdmPrimitiveToDTOConvertStrategy.cs +++ b/DataAccess/DTOs/Converters/NdmCrossSections/PointNdmPrimitiveToDTOConvertStrategy.cs @@ -33,7 +33,7 @@ namespace DataAccess.DTOs public PointNdmPrimitiveToDTOConvertStrategy() : this( new PointNdmPrimitiveUpdateStrategy(), - new NdmElementDTOConvertStrategy(), + new NdmElementToDTOConvertStrategy(), new Point2DToDTOConvertStrategy(), new VisualPropertyToDTOConvertStrategy() ) { } diff --git a/DataAccess/DTOs/Converters/RebarNdmPrimitiveFromDTOConvertStrategy.cs b/DataAccess/DTOs/Converters/NdmCrossSections/RebarNdmPrimitiveFromDTOConvertStrategy.cs similarity index 100% rename from DataAccess/DTOs/Converters/RebarNdmPrimitiveFromDTOConvertStrategy.cs rename to DataAccess/DTOs/Converters/NdmCrossSections/RebarNdmPrimitiveFromDTOConvertStrategy.cs diff --git a/DataAccess/DTOs/Converters/RebarNdmPrimitiveToDTOConvertStrategy.cs b/DataAccess/DTOs/Converters/NdmCrossSections/RebarNdmPrimitiveToDTOConvertStrategy.cs similarity index 98% rename from DataAccess/DTOs/Converters/RebarNdmPrimitiveToDTOConvertStrategy.cs rename to DataAccess/DTOs/Converters/NdmCrossSections/RebarNdmPrimitiveToDTOConvertStrategy.cs index 01fb5b4..66c1d7f 100644 --- a/DataAccess/DTOs/Converters/RebarNdmPrimitiveToDTOConvertStrategy.cs +++ b/DataAccess/DTOs/Converters/NdmCrossSections/RebarNdmPrimitiveToDTOConvertStrategy.cs @@ -29,7 +29,7 @@ namespace DataAccess.DTOs public RebarNdmPrimitiveToDTOConvertStrategy() : this( new RebarNdmPrimitiveUpdateStrategy(), - new NdmElementDTOConvertStrategy(), + new NdmElementToDTOConvertStrategy(), new Point2DToDTOConvertStrategy(), new VisualPropertyToDTOConvertStrategy() ) { } diff --git a/DataAccess/DTOs/Converters/RectangleNdmPrimitiveToDTOConvertStrategy.cs b/DataAccess/DTOs/Converters/NdmCrossSections/RectangleNdmPrimitiveToDTOConvertStrategy.cs similarity index 98% rename from DataAccess/DTOs/Converters/RectangleNdmPrimitiveToDTOConvertStrategy.cs rename to DataAccess/DTOs/Converters/NdmCrossSections/RectangleNdmPrimitiveToDTOConvertStrategy.cs index 0120a91..bc225cf 100644 --- a/DataAccess/DTOs/Converters/RectangleNdmPrimitiveToDTOConvertStrategy.cs +++ b/DataAccess/DTOs/Converters/NdmCrossSections/RectangleNdmPrimitiveToDTOConvertStrategy.cs @@ -39,7 +39,7 @@ namespace DataAccess.DTOs.Converters public RectangleNdmPrimitiveToDTOConvertStrategy() : this( new RectanglePrimitiveUpdateStrategy(), new RectangleShapeToDTOConvertStrategy(), - new NdmElementDTOConvertStrategy(), + new NdmElementToDTOConvertStrategy(), new Point2DToDTOConvertStrategy(), new VisualPropertyToDTOConvertStrategy(), new DivisionSizeToDTOConvertStrategy() diff --git a/DataAccess/DTOs/Converters/RectanglePrimitiveFromDTOConvertStrategy.cs b/DataAccess/DTOs/Converters/NdmCrossSections/RectanglePrimitiveFromDTOConvertStrategy.cs similarity index 100% rename from DataAccess/DTOs/Converters/RectanglePrimitiveFromDTOConvertStrategy.cs rename to DataAccess/DTOs/Converters/NdmCrossSections/RectanglePrimitiveFromDTOConvertStrategy.cs diff --git a/DataAccess/DTOs/Converters/NdmCrossSections/RectangleShapeToDTOConvertStrategy.cs b/DataAccess/DTOs/Converters/NdmCrossSections/RectangleShapeToDTOConvertStrategy.cs new file mode 100644 index 0000000..ab5e3a4 --- /dev/null +++ b/DataAccess/DTOs/Converters/NdmCrossSections/RectangleShapeToDTOConvertStrategy.cs @@ -0,0 +1,48 @@ +using StructureHelperCommon.Infrastructures.Interfaces; +using StructureHelperCommon.Models; +using StructureHelperCommon.Models.Shapes; + +namespace DataAccess.DTOs +{ + public class RectangleShapeToDTOConvertStrategy : ConvertStrategy + { + private IUpdateStrategy updateStrategy; + + public RectangleShapeToDTOConvertStrategy(IBaseConvertStrategy baseConvertStrategy) : base(baseConvertStrategy) + { + } + + public RectangleShapeToDTOConvertStrategy() + { + + } + + public override RectangleShapeDTO GetNewItem(IRectangleShape source) + { + try + { + GetNewRectangleShape(source); + return NewItem; + } + catch (Exception ex) + { + TraceErrorByEntity(this, ex.Message); + throw; + } + } + + private void GetNewRectangleShape(IRectangleShape source) + { + TraceLogger?.AddMessage($"Rectangle shape converting Id = {source.Id} has been started", TraceLogStatuses.Debug); + InitializeStrategies(); + NewItem = new(source.Id); + updateStrategy.Update(NewItem, source); + TraceLogger?.AddMessage($"Rectangle shape converting Id = {NewItem.Id} has been finished successfully", TraceLogStatuses.Debug); + } + + private void InitializeStrategies() + { + updateStrategy ??= new RectangleShapeUpdateStrategy(); + } + } +} diff --git a/DataAccess/DTOs/Converters/RectangleShapeToDTOConvertStrategy.cs b/DataAccess/DTOs/Converters/RectangleShapeToDTOConvertStrategy.cs deleted file mode 100644 index 8a36005..0000000 --- a/DataAccess/DTOs/Converters/RectangleShapeToDTOConvertStrategy.cs +++ /dev/null @@ -1,31 +0,0 @@ -using StructureHelperCommon.Infrastructures.Interfaces; -using StructureHelperCommon.Models; -using StructureHelperCommon.Models.Shapes; - -namespace DataAccess.DTOs -{ - public class RectangleShapeToDTOConvertStrategy : IConvertStrategy - { - private IUpdateStrategy updateStrategy; - - public RectangleShapeToDTOConvertStrategy(IUpdateStrategy updateStrategy) - { - this.updateStrategy = updateStrategy; - } - - public RectangleShapeToDTOConvertStrategy() : this (new RectangleShapeUpdateStrategy()) - { - - } - - public Dictionary<(Guid id, Type type), ISaveable> ReferenceDictionary { get; set; } - public IShiftTraceLogger TraceLogger { get; set; } - - public RectangleShapeDTO Convert(IRectangleShape source) - { - RectangleShapeDTO newItem = new() { Id = source.Id}; - updateStrategy.Update(newItem, source); - return newItem; - } - } -} diff --git a/DataAccess/DTOs/Converters/ShapeToDTOConvertStrategy.cs b/DataAccess/DTOs/Converters/ShapeToDTOConvertStrategy.cs new file mode 100644 index 0000000..77ee4fc --- /dev/null +++ b/DataAccess/DTOs/Converters/ShapeToDTOConvertStrategy.cs @@ -0,0 +1,55 @@ +using StructureHelperCommon.Infrastructures.Exceptions; +using StructureHelperCommon.Infrastructures.Interfaces; +using StructureHelperCommon.Models; +using StructureHelperCommon.Models.Loggers; +using StructureHelperCommon.Models.Shapes; +using System.Windows.Forms; + +namespace DataAccess.DTOs +{ + public class ShapeToDTOConvertStrategy : ConvertStrategy + { + private IConvertStrategy rectangleConvertStrategy; + + public ShapeToDTOConvertStrategy(IBaseConvertStrategy baseConvertStrategy) : base(baseConvertStrategy) + { + } + + public override IShape GetNewItem(IShape source) + { + try + { + GetNewShape(source); + return NewItem; + } + catch (Exception ex) + { + TraceErrorByEntity(this, ex.Message); + throw; + } + } + + private void GetNewShape(IShape source) + { + TraceLogger?.AddMessage($"Shape converting Id = {source.Id} has been started", TraceLogStatuses.Debug); + if (source is IRectangleShape rectangle) + { + ProcessRectangle(rectangle); + } + else + { + string errorString = ErrorStrings.ObjectTypeIsUnknownObj(source) + ": shape type"; + throw new StructureHelperException(errorString); + } + TraceLogger?.AddMessage($"Shape converting Id = {NewItem.Id} has been has been finished successfully", TraceLogStatuses.Debug); + } + + private void ProcessRectangle(IRectangleShape rectangle) + { + TraceLogger?.AddMessage($"Shape is rectangle", TraceLogStatuses.Debug); + rectangleConvertStrategy = new DictionaryConvertStrategy + (this, new RectangleShapeToDTOConvertStrategy(this)); + NewItem = rectangleConvertStrategy.Convert(rectangle); + } + } +} diff --git a/DataAccess/DTOs/DTOEntities/BeamShearActionDTO.cs b/DataAccess/DTOs/DTOEntities/BeamShears/BeamShearActionDTO.cs similarity index 100% rename from DataAccess/DTOs/DTOEntities/BeamShearActionDTO.cs rename to DataAccess/DTOs/DTOEntities/BeamShears/BeamShearActionDTO.cs diff --git a/DataAccess/DTOs/DTOEntities/BeamShearAnalysisDTO.cs b/DataAccess/DTOs/DTOEntities/BeamShears/BeamShearAnalysisDTO.cs similarity index 100% rename from DataAccess/DTOs/DTOEntities/BeamShearAnalysisDTO.cs rename to DataAccess/DTOs/DTOEntities/BeamShears/BeamShearAnalysisDTO.cs diff --git a/DataAccess/DTOs/DTOEntities/BeamShearAxisActionDTO.cs b/DataAccess/DTOs/DTOEntities/BeamShears/BeamShearAxisActionDTO.cs similarity index 100% rename from DataAccess/DTOs/DTOEntities/BeamShearAxisActionDTO.cs rename to DataAccess/DTOs/DTOEntities/BeamShears/BeamShearAxisActionDTO.cs diff --git a/DataAccess/DTOs/DTOEntities/BeamShearCalculatorDTO.cs b/DataAccess/DTOs/DTOEntities/BeamShears/BeamShearCalculatorDTO.cs similarity index 88% rename from DataAccess/DTOs/DTOEntities/BeamShearCalculatorDTO.cs rename to DataAccess/DTOs/DTOEntities/BeamShears/BeamShearCalculatorDTO.cs index 31f6ef9..6a45349 100644 --- a/DataAccess/DTOs/DTOEntities/BeamShearCalculatorDTO.cs +++ b/DataAccess/DTOs/DTOEntities/BeamShears/BeamShearCalculatorDTO.cs @@ -6,16 +6,16 @@ using StructureHelperLogics.Models.BeamShears; //Copyright (c) 2025 Redikultsev Evgeny, Ekaterinburg, Russia //All rights reserved. -namespace DataAccess.DTOs.DTOEntities +namespace DataAccess.DTOs { - internal class BeamShearCalculatorDTO : IBeamShearCalculator + public class BeamShearCalculatorDTO : IBeamShearCalculator { [JsonProperty("Id")] public Guid Id { get; } [JsonProperty("Name")] public string Name { get; set; } = string.Empty; [JsonProperty("InputData")] - public IBeamShearCalculatorInputData InputData { get; set; } + public IBeamShearCalculatorInputData InputData { get; set; } = new BeamShearCalculatorInputDataDTO(Guid.Empty); [JsonProperty("ShowTraceData")] public bool ShowTraceData { get; set; } [JsonIgnore] diff --git a/DataAccess/DTOs/DTOEntities/BeamShearCalculatorInputDataDTO.cs b/DataAccess/DTOs/DTOEntities/BeamShears/BeamShearCalculatorInputDataDTO.cs similarity index 70% rename from DataAccess/DTOs/DTOEntities/BeamShearCalculatorInputDataDTO.cs rename to DataAccess/DTOs/DTOEntities/BeamShears/BeamShearCalculatorInputDataDTO.cs index 803d7b5..eac79c0 100644 --- a/DataAccess/DTOs/DTOEntities/BeamShearCalculatorInputDataDTO.cs +++ b/DataAccess/DTOs/DTOEntities/BeamShears/BeamShearCalculatorInputDataDTO.cs @@ -2,9 +2,9 @@ using StructureHelperCommon.Models.Forces; using StructureHelperLogics.Models.BeamShears; -namespace DataAccess.DTOs.DTOEntities +namespace DataAccess.DTOs { - internal class BeamShearCalculatorInputDataDTO : IBeamShearCalculatorInputData + public class BeamShearCalculatorInputDataDTO : IBeamShearCalculatorInputData { [JsonProperty("Id")] public Guid Id { get; } @@ -14,5 +14,9 @@ namespace DataAccess.DTOs.DTOEntities public List Sections { get; } = new(); [JsonProperty("Stirrups")] public List Stirrups { get; } = new(); + public BeamShearCalculatorInputDataDTO(Guid id) + { + Id = id; + } } } diff --git a/DataAccess/DTOs/DTOEntities/BeamShearDTO.cs b/DataAccess/DTOs/DTOEntities/BeamShears/BeamShearDTO.cs similarity index 100% rename from DataAccess/DTOs/DTOEntities/BeamShearDTO.cs rename to DataAccess/DTOs/DTOEntities/BeamShears/BeamShearDTO.cs diff --git a/DataAccess/DTOs/DTOEntities/BeamShearRepositoryDTO.cs b/DataAccess/DTOs/DTOEntities/BeamShears/BeamShearRepositoryDTO.cs similarity index 100% rename from DataAccess/DTOs/DTOEntities/BeamShearRepositoryDTO.cs rename to DataAccess/DTOs/DTOEntities/BeamShears/BeamShearRepositoryDTO.cs index fcb985a..d067003 100644 --- a/DataAccess/DTOs/DTOEntities/BeamShearRepositoryDTO.cs +++ b/DataAccess/DTOs/DTOEntities/BeamShears/BeamShearRepositoryDTO.cs @@ -11,12 +11,12 @@ namespace DataAccess.DTOs public Guid Id { get; } [JsonProperty("Actions")] public List Actions { get; } = new(); - [JsonProperty("Calculators")] - public List Calculators { get; } = new(); [JsonProperty("Sections")] public List Sections { get; } = new(); [JsonProperty("Stirrups")] public List Stirrups { get; } = new(); + [JsonProperty("Calculators")] + public List Calculators { get; } = new(); public BeamShearRepositoryDTO(Guid id) { Id = id; diff --git a/DataAccess/DTOs/DTOEntities/BeamShearSectionDTO.cs b/DataAccess/DTOs/DTOEntities/BeamShears/BeamShearSectionDTO.cs similarity index 88% rename from DataAccess/DTOs/DTOEntities/BeamShearSectionDTO.cs rename to DataAccess/DTOs/DTOEntities/BeamShears/BeamShearSectionDTO.cs index 24bc75f..4368e4f 100644 --- a/DataAccess/DTOs/DTOEntities/BeamShearSectionDTO.cs +++ b/DataAccess/DTOs/DTOEntities/BeamShears/BeamShearSectionDTO.cs @@ -6,7 +6,7 @@ using StructureHelperLogics.Models.Materials; //Copyright (c) 2025 Redikultsev Evgeny, Ekaterinburg, Russia //All rights reserved. -namespace DataAccess.DTOs.DTOEntities +namespace DataAccess.DTOs { public class BeamShearSectionDTO : IBeamShearSection { @@ -15,7 +15,7 @@ namespace DataAccess.DTOs.DTOEntities [JsonProperty("Name")] public string? Name { get; set; } [JsonProperty("Shape")] - public IShape Shape { get; set; } + public IShape Shape { get; set; } = new RectangleShapeDTO(Guid.Empty); [JsonProperty("Material")] public IConcreteLibMaterial Material { get; set; } [JsonProperty("CenterCover")] diff --git a/DataAccess/DTOs/DTOEntities/StirrupByDensityDTO.cs b/DataAccess/DTOs/DTOEntities/BeamShears/StirrupByDensityDTO.cs similarity index 79% rename from DataAccess/DTOs/DTOEntities/StirrupByDensityDTO.cs rename to DataAccess/DTOs/DTOEntities/BeamShears/StirrupByDensityDTO.cs index dc8b750..18a4d36 100644 --- a/DataAccess/DTOs/DTOEntities/StirrupByDensityDTO.cs +++ b/DataAccess/DTOs/DTOEntities/BeamShears/StirrupByDensityDTO.cs @@ -1,7 +1,7 @@ using Newtonsoft.Json; using StructureHelperLogics.Models.BeamShears; -namespace DataAccess.DTOs.DTOEntities +namespace DataAccess.DTOs { public class StirrupByDensityDTO : IStirrupByDensity { @@ -14,10 +14,14 @@ namespace DataAccess.DTOs.DTOEntities [JsonProperty("CompressedGap")] public double CompressedGap { get; set; } + public StirrupByDensityDTO(Guid id) + { + Id = id; + } public object Clone() { - throw new NotImplementedException(); + return this; } } } diff --git a/DataAccess/DTOs/DTOEntities/StirrupByRebarDTO.cs b/DataAccess/DTOs/DTOEntities/BeamShears/StirrupByRebarDTO.cs similarity index 95% rename from DataAccess/DTOs/DTOEntities/StirrupByRebarDTO.cs rename to DataAccess/DTOs/DTOEntities/BeamShears/StirrupByRebarDTO.cs index 9550122..0d7b372 100644 --- a/DataAccess/DTOs/DTOEntities/StirrupByRebarDTO.cs +++ b/DataAccess/DTOs/DTOEntities/BeamShears/StirrupByRebarDTO.cs @@ -2,7 +2,7 @@ using StructureHelperLogics.Models.BeamShears; using StructureHelperLogics.Models.Materials; -namespace DataAccess.DTOs.DTOEntities +namespace DataAccess.DTOs { public class StirrupByRebarDTO : IStirrupByRebar { diff --git a/DataAccess/DTOs/DTOEntities/ConcentratedForceDTO.cs b/DataAccess/DTOs/DTOEntities/Forces/ConcentratedForceDTO.cs similarity index 100% rename from DataAccess/DTOs/DTOEntities/ConcentratedForceDTO.cs rename to DataAccess/DTOs/DTOEntities/Forces/ConcentratedForceDTO.cs diff --git a/DataAccess/DTOs/DTOEntities/DistributedLoadDTO.cs b/DataAccess/DTOs/DTOEntities/Forces/DistributedLoadDTO.cs similarity index 100% rename from DataAccess/DTOs/DTOEntities/DistributedLoadDTO.cs rename to DataAccess/DTOs/DTOEntities/Forces/DistributedLoadDTO.cs diff --git a/DataAccess/DTOs/DTOEntities/FactoredCombinationPropertyDTO.cs b/DataAccess/DTOs/DTOEntities/Forces/FactoredCombinationPropertyDTO.cs similarity index 100% rename from DataAccess/DTOs/DTOEntities/FactoredCombinationPropertyDTO.cs rename to DataAccess/DTOs/DTOEntities/Forces/FactoredCombinationPropertyDTO.cs diff --git a/DataAccess/DTOs/DTOEntities/FactoredForceTupleDTO.cs b/DataAccess/DTOs/DTOEntities/Forces/FactoredForceTupleDTO.cs similarity index 100% rename from DataAccess/DTOs/DTOEntities/FactoredForceTupleDTO.cs rename to DataAccess/DTOs/DTOEntities/Forces/FactoredForceTupleDTO.cs diff --git a/DataAccess/DTOs/DTOEntities/ForceCombinationFromFileDTO.cs b/DataAccess/DTOs/DTOEntities/Forces/ForceCombinationFromFileDTO.cs similarity index 90% rename from DataAccess/DTOs/DTOEntities/ForceCombinationFromFileDTO.cs rename to DataAccess/DTOs/DTOEntities/Forces/ForceCombinationFromFileDTO.cs index 5dfce4c..093c66a 100644 --- a/DataAccess/DTOs/DTOEntities/ForceCombinationFromFileDTO.cs +++ b/DataAccess/DTOs/DTOEntities/Forces/ForceCombinationFromFileDTO.cs @@ -1,11 +1,6 @@ using Newtonsoft.Json; using StructureHelperCommon.Models.Forces; using StructureHelperCommon.Models.Shapes; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace DataAccess.DTOs { diff --git a/DataAccess/DTOs/DTOEntities/ForceCombinationListDTO.cs b/DataAccess/DTOs/DTOEntities/Forces/ForceCombinationListDTO.cs similarity index 100% rename from DataAccess/DTOs/DTOEntities/ForceCombinationListDTO.cs rename to DataAccess/DTOs/DTOEntities/Forces/ForceCombinationListDTO.cs diff --git a/DataAccess/DTOs/DTOEntities/ForceFactoredListDTO.cs b/DataAccess/DTOs/DTOEntities/Forces/ForceFactoredListDTO.cs similarity index 100% rename from DataAccess/DTOs/DTOEntities/ForceFactoredListDTO.cs rename to DataAccess/DTOs/DTOEntities/Forces/ForceFactoredListDTO.cs diff --git a/DataAccess/DTOs/DTOEntities/ForceTupleDTO.cs b/DataAccess/DTOs/DTOEntities/Forces/ForceTupleDTO.cs similarity index 100% rename from DataAccess/DTOs/DTOEntities/ForceTupleDTO.cs rename to DataAccess/DTOs/DTOEntities/Forces/ForceTupleDTO.cs diff --git a/DataAccess/DTOs/DTOEntities/ConcreteLibMaterialDTO.cs b/DataAccess/DTOs/DTOEntities/Materials/ConcreteLibMaterialDTO.cs similarity index 100% rename from DataAccess/DTOs/DTOEntities/ConcreteLibMaterialDTO.cs rename to DataAccess/DTOs/DTOEntities/Materials/ConcreteLibMaterialDTO.cs diff --git a/DataAccess/DTOs/DTOEntities/ElasticMaterialDTO.cs b/DataAccess/DTOs/DTOEntities/Materials/ElasticMaterialDTO.cs similarity index 100% rename from DataAccess/DTOs/DTOEntities/ElasticMaterialDTO.cs rename to DataAccess/DTOs/DTOEntities/Materials/ElasticMaterialDTO.cs diff --git a/DataAccess/DTOs/DTOEntities/FRMaterialDTO.cs b/DataAccess/DTOs/DTOEntities/Materials/FRMaterialDTO.cs similarity index 100% rename from DataAccess/DTOs/DTOEntities/FRMaterialDTO.cs rename to DataAccess/DTOs/DTOEntities/Materials/FRMaterialDTO.cs diff --git a/DataAccess/DTOs/DTOEntities/HeadMaterialDTO.cs b/DataAccess/DTOs/DTOEntities/Materials/HeadMaterialDTO.cs similarity index 100% rename from DataAccess/DTOs/DTOEntities/HeadMaterialDTO.cs rename to DataAccess/DTOs/DTOEntities/Materials/HeadMaterialDTO.cs diff --git a/DataAccess/DTOs/DTOEntities/MaterialPartialFactorDTO.cs b/DataAccess/DTOs/DTOEntities/Materials/MaterialPartialFactorDTO.cs similarity index 100% rename from DataAccess/DTOs/DTOEntities/MaterialPartialFactorDTO.cs rename to DataAccess/DTOs/DTOEntities/Materials/MaterialPartialFactorDTO.cs diff --git a/DataAccess/DTOs/DTOEntities/MaterialSafetyFactorDTO.cs b/DataAccess/DTOs/DTOEntities/Materials/MaterialSafetyFactorDTO.cs similarity index 100% rename from DataAccess/DTOs/DTOEntities/MaterialSafetyFactorDTO.cs rename to DataAccess/DTOs/DTOEntities/Materials/MaterialSafetyFactorDTO.cs diff --git a/DataAccess/DTOs/DTOEntities/ReinforcementLibMaterialDTO.cs b/DataAccess/DTOs/DTOEntities/Materials/ReinforcementLibMaterialDTO.cs similarity index 100% rename from DataAccess/DTOs/DTOEntities/ReinforcementLibMaterialDTO.cs rename to DataAccess/DTOs/DTOEntities/Materials/ReinforcementLibMaterialDTO.cs diff --git a/DataAccess/DTOs/DTOEntities/CrackCalculatorDTO.cs b/DataAccess/DTOs/DTOEntities/NdmCrossSections/CrackCalculatorDTO.cs similarity index 88% rename from DataAccess/DTOs/DTOEntities/CrackCalculatorDTO.cs rename to DataAccess/DTOs/DTOEntities/NdmCrossSections/CrackCalculatorDTO.cs index 7122890..0859fb7 100644 --- a/DataAccess/DTOs/DTOEntities/CrackCalculatorDTO.cs +++ b/DataAccess/DTOs/DTOEntities/NdmCrossSections/CrackCalculatorDTO.cs @@ -2,11 +2,6 @@ using StructureHelperCommon.Models; using StructureHelperCommon.Models.Calculators; using StructureHelperLogics.NdmCalculations.Cracking; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace DataAccess.DTOs { @@ -16,6 +11,8 @@ namespace DataAccess.DTOs public Guid Id { get;} [JsonProperty("Name")] public string Name { get; set; } + [JsonProperty("ShowTraceData")] + public bool ShowTraceData { get; set; } = false; [JsonProperty("InputData")] public ICrackCalculatorInputData InputData { get; set; } [JsonIgnore] diff --git a/DataAccess/DTOs/DTOEntities/CrackCalculatorInputDataDTO.cs b/DataAccess/DTOs/DTOEntities/NdmCrossSections/CrackCalculatorInputDataDTO.cs similarity index 100% rename from DataAccess/DTOs/DTOEntities/CrackCalculatorInputDataDTO.cs rename to DataAccess/DTOs/DTOEntities/NdmCrossSections/CrackCalculatorInputDataDTO.cs diff --git a/DataAccess/DTOs/DTOEntities/CrossSectionDTO.cs b/DataAccess/DTOs/DTOEntities/NdmCrossSections/CrossSectionDTO.cs similarity index 82% rename from DataAccess/DTOs/DTOEntities/CrossSectionDTO.cs rename to DataAccess/DTOs/DTOEntities/NdmCrossSections/CrossSectionDTO.cs index 55736f7..3071163 100644 --- a/DataAccess/DTOs/DTOEntities/CrossSectionDTO.cs +++ b/DataAccess/DTOs/DTOEntities/NdmCrossSections/CrossSectionDTO.cs @@ -1,11 +1,6 @@ using Newtonsoft.Json; using StructureHelperCommon.Models.WorkPlanes; using StructureHelperLogics.Models.CrossSections; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace DataAccess.DTOs { diff --git a/DataAccess/DTOs/DTOEntities/CrossSectionNdmAnalysisDTO.cs b/DataAccess/DTOs/DTOEntities/NdmCrossSections/CrossSectionNdmAnalysisDTO.cs similarity index 100% rename from DataAccess/DTOs/DTOEntities/CrossSectionNdmAnalysisDTO.cs rename to DataAccess/DTOs/DTOEntities/NdmCrossSections/CrossSectionNdmAnalysisDTO.cs diff --git a/DataAccess/DTOs/DTOEntities/CrossSectionRepositoryDTO.cs b/DataAccess/DTOs/DTOEntities/NdmCrossSections/CrossSectionRepositoryDTO.cs similarity index 100% rename from DataAccess/DTOs/DTOEntities/CrossSectionRepositoryDTO.cs rename to DataAccess/DTOs/DTOEntities/NdmCrossSections/CrossSectionRepositoryDTO.cs diff --git a/DataAccess/DTOs/DTOEntities/EllipseNdmPrimitiveDTO.cs b/DataAccess/DTOs/DTOEntities/NdmCrossSections/EllipseNdmPrimitiveDTO.cs similarity index 91% rename from DataAccess/DTOs/DTOEntities/EllipseNdmPrimitiveDTO.cs rename to DataAccess/DTOs/DTOEntities/NdmCrossSections/EllipseNdmPrimitiveDTO.cs index fea2655..143d5d1 100644 --- a/DataAccess/DTOs/DTOEntities/EllipseNdmPrimitiveDTO.cs +++ b/DataAccess/DTOs/DTOEntities/NdmCrossSections/EllipseNdmPrimitiveDTO.cs @@ -4,17 +4,12 @@ using StructureHelperCommon.Models.Shapes; using StructureHelperLogics.Models.CrossSections; using StructureHelperLogics.NdmCalculations.Primitives; using StructureHelperLogics.NdmCalculations.Triangulations; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace DataAccess.DTOs { public class EllipseNdmPrimitiveDTO : IEllipseNdmPrimitive { - private IRectangleShape shape = new RectangleShapeDTO(); + private IRectangleShape shape = new RectangleShapeDTO(Guid.Empty); [JsonProperty("Id")] public Guid Id { get; set; } @@ -29,7 +24,7 @@ namespace DataAccess.DTOs [JsonIgnore] public IShape Shape => shape; [JsonProperty("NdmElement")] - public INdmElement NdmElement { get; set; } = new NdmElementDTO(); + public INdmElement NdmElement { get; set; } = new NdmElementDTO(Guid.Empty); [JsonProperty("VisualProperty")] public IVisualProperty VisualProperty { get; set; } = new VisualPropertyDTO(); [JsonProperty("Center")] diff --git a/DataAccess/DTOs/DTOEntities/ForceCalculatorDTO.cs b/DataAccess/DTOs/DTOEntities/NdmCrossSections/ForceCalculatorDTO.cs similarity index 81% rename from DataAccess/DTOs/DTOEntities/ForceCalculatorDTO.cs rename to DataAccess/DTOs/DTOEntities/NdmCrossSections/ForceCalculatorDTO.cs index 35af86a..a12bd2f 100644 --- a/DataAccess/DTOs/DTOEntities/ForceCalculatorDTO.cs +++ b/DataAccess/DTOs/DTOEntities/NdmCrossSections/ForceCalculatorDTO.cs @@ -2,20 +2,17 @@ using StructureHelperCommon.Models; using StructureHelperCommon.Models.Calculators; using StructureHelperLogics.NdmCalculations.Analyses.ByForces; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace DataAccess.DTOs { public class ForceCalculatorDTO : IForceCalculator { [JsonProperty("Id")] - public Guid Id { get; set; } + public Guid Id { get;} [JsonProperty("Name")] public string Name { get; set; } + [JsonProperty("ShowTraceData")] + public bool ShowTraceData { get; set; } = false; [JsonProperty("InputData")] public IForceCalculatorInputData InputData { get; set; } [JsonIgnore] @@ -25,6 +22,12 @@ namespace DataAccess.DTOs [JsonIgnore] public IResult Result => throw new NotImplementedException(); + + public ForceCalculatorDTO(Guid id) + { + Id = id; + } + public object Clone() { throw new NotImplementedException(); diff --git a/DataAccess/DTOs/DTOEntities/ForceCalculatorInputDataDTO.cs b/DataAccess/DTOs/DTOEntities/NdmCrossSections/ForceCalculatorInputDataDTO.cs similarity index 100% rename from DataAccess/DTOs/DTOEntities/ForceCalculatorInputDataDTO.cs rename to DataAccess/DTOs/DTOEntities/NdmCrossSections/ForceCalculatorInputDataDTO.cs diff --git a/DataAccess/DTOs/DTOEntities/NdmElementDTO.cs b/DataAccess/DTOs/DTOEntities/NdmCrossSections/NdmElementDTO.cs similarity index 84% rename from DataAccess/DTOs/DTOEntities/NdmElementDTO.cs rename to DataAccess/DTOs/DTOEntities/NdmCrossSections/NdmElementDTO.cs index 47be68d..7e6db12 100644 --- a/DataAccess/DTOs/DTOEntities/NdmElementDTO.cs +++ b/DataAccess/DTOs/DTOEntities/NdmCrossSections/NdmElementDTO.cs @@ -2,18 +2,13 @@ using StructureHelper.Models.Materials; using StructureHelperCommon.Models.Forces; using StructureHelperLogics.NdmCalculations.Primitives; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace DataAccess.DTOs { public class NdmElementDTO : INdmElement { [JsonProperty("Id")] - public Guid Id { get; set; } + public Guid Id { get;} [JsonProperty("HeadMaterial")] public IHeadMaterial? HeadMaterial { get; set; } = new HeadMaterial(); [JsonProperty("Triangulate")] @@ -23,6 +18,10 @@ namespace DataAccess.DTOs [JsonProperty("AutoPrestrain")] public IForceTuple AutoPrestrain { get; set; } = new ForceTupleDTO(Guid.NewGuid()); + public NdmElementDTO(Guid id) + { + Id = id; + } public object Clone() { diff --git a/DataAccess/DTOs/DTOEntities/PointNdmPrimitiveDTO.cs b/DataAccess/DTOs/DTOEntities/NdmCrossSections/PointNdmPrimitiveDTO.cs similarity index 98% rename from DataAccess/DTOs/DTOEntities/PointNdmPrimitiveDTO.cs rename to DataAccess/DTOs/DTOEntities/NdmCrossSections/PointNdmPrimitiveDTO.cs index 1c176c0..deaa6bb 100644 --- a/DataAccess/DTOs/DTOEntities/PointNdmPrimitiveDTO.cs +++ b/DataAccess/DTOs/DTOEntities/NdmCrossSections/PointNdmPrimitiveDTO.cs @@ -19,7 +19,7 @@ namespace DataAccess.DTOs [JsonProperty("Name")] public string? Name { get; set; } [JsonProperty("NdmElement")] - public INdmElement NdmElement { get; set; } = new NdmElementDTO(); + public INdmElement NdmElement { get; set; } = new NdmElementDTO(Guid.Empty); [JsonProperty("VisualProperty")] public IVisualProperty VisualProperty { get; set; } = new VisualPropertyDTO(); [JsonProperty("Center")] diff --git a/DataAccess/DTOs/DTOEntities/RebarNdmPrimitiveDTO.cs b/DataAccess/DTOs/DTOEntities/NdmCrossSections/RebarNdmPrimitiveDTO.cs similarity index 98% rename from DataAccess/DTOs/DTOEntities/RebarNdmPrimitiveDTO.cs rename to DataAccess/DTOs/DTOEntities/NdmCrossSections/RebarNdmPrimitiveDTO.cs index eb0baa8..88bf86b 100644 --- a/DataAccess/DTOs/DTOEntities/RebarNdmPrimitiveDTO.cs +++ b/DataAccess/DTOs/DTOEntities/NdmCrossSections/RebarNdmPrimitiveDTO.cs @@ -21,7 +21,7 @@ namespace DataAccess.DTOs [JsonIgnore] public IShape Shape { get; set; } [JsonProperty("NdmElement")] - public INdmElement NdmElement { get; set; } = new NdmElementDTO(); + public INdmElement NdmElement { get; set; } = new NdmElementDTO(Guid.Empty); [JsonIgnore] public ICrossSection? CrossSection { get; set; } [JsonProperty("VisualProperty")] diff --git a/DataAccess/DTOs/DTOEntities/RectangleNdmPrimitiveDTO.cs b/DataAccess/DTOs/DTOEntities/NdmCrossSections/RectangleNdmPrimitiveDTO.cs similarity index 95% rename from DataAccess/DTOs/DTOEntities/RectangleNdmPrimitiveDTO.cs rename to DataAccess/DTOs/DTOEntities/NdmCrossSections/RectangleNdmPrimitiveDTO.cs index e858f41..89db136 100644 --- a/DataAccess/DTOs/DTOEntities/RectangleNdmPrimitiveDTO.cs +++ b/DataAccess/DTOs/DTOEntities/NdmCrossSections/RectangleNdmPrimitiveDTO.cs @@ -14,7 +14,7 @@ namespace DataAccess.DTOs { public class RectangleNdmPrimitiveDTO : IRectangleNdmPrimitive { - private IRectangleShape shape = new RectangleShapeDTO(); + private IRectangleShape shape = new RectangleShapeDTO(Guid.Empty); [JsonProperty("Id")] public Guid Id { get; set; } @@ -29,7 +29,7 @@ namespace DataAccess.DTOs [JsonIgnore] public IShape Shape => shape; [JsonProperty("NdmElement")] - public INdmElement NdmElement { get; set; } = new NdmElementDTO(); + public INdmElement NdmElement { get; set; } = new NdmElementDTO(Guid.Empty); [JsonProperty("VisualProperty")] public IVisualProperty VisualProperty { get; set; } = new VisualPropertyDTO(); [JsonProperty("Center")] diff --git a/DataAccess/DTOs/DTOEntities/UserCrackInputDataDTO.cs b/DataAccess/DTOs/DTOEntities/NdmCrossSections/UserCrackInputDataDTO.cs similarity index 100% rename from DataAccess/DTOs/DTOEntities/UserCrackInputDataDTO.cs rename to DataAccess/DTOs/DTOEntities/NdmCrossSections/UserCrackInputDataDTO.cs diff --git a/DataAccess/DTOs/DTOEntities/RectangleShapeDTO.cs b/DataAccess/DTOs/DTOEntities/RectangleShapeDTO.cs index 4303cef..ea15b98 100644 --- a/DataAccess/DTOs/DTOEntities/RectangleShapeDTO.cs +++ b/DataAccess/DTOs/DTOEntities/RectangleShapeDTO.cs @@ -1,21 +1,21 @@ using Newtonsoft.Json; using StructureHelperCommon.Models.Shapes; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace DataAccess.DTOs { public class RectangleShapeDTO : IRectangleShape { [JsonProperty("Id")] - public Guid Id { get; set; } + public Guid Id { get;} [JsonProperty("Width")] public double Width { get; set; } [JsonProperty("Height")] public double Height { get; set; } + public RectangleShapeDTO(Guid id) + { + Id = id; + } + } } diff --git a/DataAccess/DTOs/DTOEntities/TypeBinderListFactory.cs b/DataAccess/DTOs/DTOEntities/TypeBinderListFactory.cs index b00245f..5e20853 100644 --- a/DataAccess/DTOs/DTOEntities/TypeBinderListFactory.cs +++ b/DataAccess/DTOs/DTOEntities/TypeBinderListFactory.cs @@ -116,11 +116,16 @@ namespace DataAccess.DTOs { (typeof(BeamShearActionDTO), "BeamShearAction") }, { (typeof(BeamShearAxisActionDTO), "BeamShearAxisAction") }, { (typeof(BeamShearAnalysisDTO), "BeamShearAnalysis") }, + { (typeof(BeamShearCalculatorDTO), "BeamShearCalculator") }, + { (typeof(BeamShearCalculatorInputDataDTO), "BeamShearCalculatorInputData") }, { (typeof(BeamShearRepositoryDTO), "BeamShearRepository") }, + { (typeof(BeamShearSectionDTO), "BeamShearSection") }, { (typeof(List), "ListOfBeamShearActions") }, { (typeof(List), "ListOfBeamShearSections") }, { (typeof(List), "ListOfSpanLoads") }, { (typeof(List), "ListOfStirrups") }, + { (typeof(StirrupByDensityDTO), "StirrupByDensity") }, + { (typeof(StirrupByRebarDTO), "StirrupByRebar") }, }; return newList; } diff --git a/DataAccess/DataAccess.csproj b/DataAccess/DataAccess.csproj index 191fcfe..99c31d7 100644 --- a/DataAccess/DataAccess.csproj +++ b/DataAccess/DataAccess.csproj @@ -15,10 +15,6 @@ - - - - ..\StructureHelper\Libraries\LoaderCalculator.dll diff --git a/StructureHelper/Models/Calculators/LimitCurveVisualCalculator.cs b/StructureHelper/Models/Calculators/LimitCurveVisualCalculator.cs index c106fc6..9c6112c 100644 --- a/StructureHelper/Models/Calculators/LimitCurveVisualCalculator.cs +++ b/StructureHelper/Models/Calculators/LimitCurveVisualCalculator.cs @@ -12,7 +12,7 @@ namespace StructureHelper.Models.Calculators public Guid Id { get; } public string Name { get; set; } - + public bool ShowTraceData { get; set; } = false; public IResult Result => result; public IShiftTraceLogger? TraceLogger { get => throw new NotImplementedException(); set => throw new NotImplementedException(); } diff --git a/StructureHelper/Windows/CalculationWindows/CalculatorsViews/Cracks/CrackCalculatorInputDataView.xaml b/StructureHelper/Windows/CalculationWindows/CalculatorsViews/Cracks/CrackCalculatorInputDataView.xaml index aaa5429..5d87ccc 100644 --- a/StructureHelper/Windows/CalculationWindows/CalculatorsViews/Cracks/CrackCalculatorInputDataView.xaml +++ b/StructureHelper/Windows/CalculationWindows/CalculatorsViews/Cracks/CrackCalculatorInputDataView.xaml @@ -19,12 +19,18 @@ + + + + + - + + diff --git a/StructureHelper/Windows/CalculationWindows/CalculatorsViews/Cracks/CrackCalculatorInputDataViewModel.cs b/StructureHelper/Windows/CalculationWindows/CalculatorsViews/Cracks/CrackCalculatorInputDataViewModel.cs index e8c9e6b..2be72fd 100644 --- a/StructureHelper/Windows/CalculationWindows/CalculatorsViews/Cracks/CrackCalculatorInputDataViewModel.cs +++ b/StructureHelper/Windows/CalculationWindows/CalculatorsViews/Cracks/CrackCalculatorInputDataViewModel.cs @@ -1,14 +1,9 @@ using StructureHelper.Infrastructure.UI.DataContexts; using StructureHelper.Windows.ViewModels; -using StructureHelperCommon.Infrastructures.Enums; using StructureHelperCommon.Models.Forces; using StructureHelperLogics.NdmCalculations.Cracking; using StructureHelperLogics.NdmCalculations.Primitives; -using System; using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace StructureHelper.Windows.CalculationWindows.CalculatorsViews { @@ -16,9 +11,6 @@ namespace StructureHelper.Windows.CalculationWindows.CalculatorsViews { private CrackCalculator calculator; ICrackCalculatorInputData crackInputData; - private bool setUserValueSofteningFactor; - private double softeningFactor; - private string name; public SourceTargetVM CombinationViewModel { get; } public SourceTargetVM PrimitivesViewModel { get; private set; } @@ -33,6 +25,21 @@ namespace StructureHelper.Windows.CalculationWindows.CalculatorsViews OnPropertyChanged(nameof(WindowTitle)); } } + + public bool ShowTraceData + { + get + { + return calculator.ShowTraceData; + } + + set + { + calculator.ShowTraceData = value; + OnPropertyChanged(nameof(ShowTraceData)); + } + } + public bool SetSofteningFactor { get => crackInputData.UserCrackInputData.SetSofteningFactor; diff --git a/StructureHelper/Windows/CalculationWindows/CalculatorsViews/ForceCalculatorViews/ForceCalculatorView.xaml b/StructureHelper/Windows/CalculationWindows/CalculatorsViews/ForceCalculatorViews/ForceCalculatorView.xaml index 0bcf058..8c2867c 100644 --- a/StructureHelper/Windows/CalculationWindows/CalculatorsViews/ForceCalculatorViews/ForceCalculatorView.xaml +++ b/StructureHelper/Windows/CalculationWindows/CalculatorsViews/ForceCalculatorViews/ForceCalculatorView.xaml @@ -88,16 +88,21 @@ - + + + + + - + + diff --git a/StructureHelper/Windows/CalculationWindows/CalculatorsViews/ForceCalculatorViews/ForceCalculatorViewModel.cs b/StructureHelper/Windows/CalculationWindows/CalculatorsViews/ForceCalculatorViews/ForceCalculatorViewModel.cs index 429b8f0..f1b8476 100644 --- a/StructureHelper/Windows/CalculationWindows/CalculatorsViews/ForceCalculatorViews/ForceCalculatorViewModel.cs +++ b/StructureHelper/Windows/CalculationWindows/CalculatorsViews/ForceCalculatorViews/ForceCalculatorViewModel.cs @@ -17,11 +17,30 @@ namespace StructureHelper.Windows.ViewModels.Calculations.Calculators public class ForceCalculatorViewModel : OkCancelViewModelBase { IForceCalculator forcesCalculator; + private bool showTraceData; public string Name { get { return forcesCalculator.Name; } - set { forcesCalculator.Name = value; } + set + { + forcesCalculator.Name = value; + OnPropertyChanged(nameof(Name)); + } + } + + public bool ShowTraceData + { + get + { + return forcesCalculator.ShowTraceData; + } + + set + { + forcesCalculator.ShowTraceData = value; + OnPropertyChanged(nameof(ShowTraceData)); + } } public ForceCalculatorInputDataVM InputData { get; } diff --git a/StructureHelper/Windows/CalculationWindows/CalculatorsViews/ForceCalculatorViews/LimitCurveCalculatorView.xaml b/StructureHelper/Windows/CalculationWindows/CalculatorsViews/ForceCalculatorViews/LimitCurveCalculatorView.xaml index 0adf251..52c28d9 100644 --- a/StructureHelper/Windows/CalculationWindows/CalculatorsViews/ForceCalculatorViews/LimitCurveCalculatorView.xaml +++ b/StructureHelper/Windows/CalculationWindows/CalculatorsViews/ForceCalculatorViews/LimitCurveCalculatorView.xaml @@ -15,6 +15,7 @@ + @@ -24,7 +25,8 @@ - + + diff --git a/StructureHelper/Windows/CalculationWindows/CalculatorsViews/ForceCalculatorViews/LimitCurveCalculatorViewModel.cs b/StructureHelper/Windows/CalculationWindows/CalculatorsViews/ForceCalculatorViews/LimitCurveCalculatorViewModel.cs index 4b36854..5615f44 100644 --- a/StructureHelper/Windows/CalculationWindows/CalculatorsViews/ForceCalculatorViews/LimitCurveCalculatorViewModel.cs +++ b/StructureHelper/Windows/CalculationWindows/CalculatorsViews/ForceCalculatorViews/LimitCurveCalculatorViewModel.cs @@ -1,13 +1,8 @@ using StructureHelper.Windows.CalculationWindows.CalculatorsViews.ForceCalculatorViews.ForceResultLogic; using StructureHelper.Windows.ViewModels; using StructureHelperLogics.NdmCalculations.Analyses.ByForces; -using StructureHelperLogics.NdmCalculations.Analyses.ByForces.LimitCurve; using StructureHelperLogics.NdmCalculations.Primitives; -using System; using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; //Copyright (c) 2023 Redikultsev Evgeny, Ekaterinburg, Russia //All rights reserved. @@ -26,6 +21,20 @@ namespace StructureHelper.Windows.CalculationWindows.CalculatorsViews.ForceCalcu OnPropertyChanged(nameof(Name)); } } + public bool ShowTraceData + { + get + { + return calculator.ShowTraceData; + } + + set + { + calculator.ShowTraceData = value; + OnPropertyChanged(nameof(ShowTraceData)); + } + } + public LimitCurveDataViewModel LimitCurveDataViewModel { get; } public LimitCurveCalculatorViewModel(LimitCurvesCalculator calculator, IEnumerable allowedPrimitives) { diff --git a/StructureHelperCommon/Infrastructures/Interfaces/DictionaryConvertStrategy.cs b/StructureHelperCommon/Infrastructures/Interfaces/DictionaryConvertStrategy.cs index 549776c..f26ad0d 100644 --- a/StructureHelperCommon/Infrastructures/Interfaces/DictionaryConvertStrategy.cs +++ b/StructureHelperCommon/Infrastructures/Interfaces/DictionaryConvertStrategy.cs @@ -28,6 +28,7 @@ namespace StructureHelperCommon.Infrastructures.Interfaces TraceLogger = baseConvertStrategy.TraceLogger; ConvertStrategy = convertStrategy; } + public DictionaryConvertStrategy(Dictionary<(Guid id, Type type), ISaveable> referenceDictionary, IShiftTraceLogger? traceLogger, IConvertStrategy convertStrategy) { ReferenceDictionary = referenceDictionary; diff --git a/StructureHelperCommon/Models/Calculators/ICalculator.cs b/StructureHelperCommon/Models/Calculators/ICalculator.cs index 1805281..7408a52 100644 --- a/StructureHelperCommon/Models/Calculators/ICalculator.cs +++ b/StructureHelperCommon/Models/Calculators/ICalculator.cs @@ -3,16 +3,13 @@ using System; namespace StructureHelperCommon.Models.Calculators { - public interface ICalculator : ILogic, ISaveable, ICloneable + public interface ICalculator : ILogicCalculator { string Name { get; set; } /// - /// Method for calculating + /// Flag of exibiting of trace data /// - void Run(); - /// - /// Result of Calculations - /// - IResult Result { get; } + bool ShowTraceData { get; set; } + } } diff --git a/StructureHelperCommon/Models/Calculators/IFindParameterCalculator.cs b/StructureHelperCommon/Models/Calculators/IFindParameterCalculator.cs index f4d09e1..a1ec92b 100644 --- a/StructureHelperCommon/Models/Calculators/IFindParameterCalculator.cs +++ b/StructureHelperCommon/Models/Calculators/IFindParameterCalculator.cs @@ -1,6 +1,6 @@ namespace StructureHelperCommon.Models.Calculators { - public interface IFindParameterCalculator : ICalculator, IHasActionByResult + public interface IFindParameterCalculator : ILogicCalculator, IHasActionByResult { IAccuracy Accuracy { get; set; } IFindParameterCalculatorInputData InputData { get; set; } diff --git a/StructureHelperCommon/Models/Calculators/ILogicCalculator.cs b/StructureHelperCommon/Models/Calculators/ILogicCalculator.cs new file mode 100644 index 0000000..5f6bab4 --- /dev/null +++ b/StructureHelperCommon/Models/Calculators/ILogicCalculator.cs @@ -0,0 +1,17 @@ +using StructureHelperCommon.Infrastructures.Interfaces; +using System; + +namespace StructureHelperCommon.Models.Calculators +{ + public interface ILogicCalculator : ILogic, ISaveable, ICloneable + { + /// + /// Method for calculating + /// + void Run(); + /// + /// Result of Calculations + /// + IResult Result { get; } + } +} \ No newline at end of file diff --git a/StructureHelperCommon/Models/Soils/AnchorCalculator.cs b/StructureHelperCommon/Models/Soils/AnchorCalculator.cs index 10e7a50..ac36914 100644 --- a/StructureHelperCommon/Models/Soils/AnchorCalculator.cs +++ b/StructureHelperCommon/Models/Soils/AnchorCalculator.cs @@ -25,6 +25,8 @@ namespace StructureHelperCommon.Models.Soils public Guid Id => throw new NotImplementedException(); + public bool ShowTraceData { get => throw new NotImplementedException(); set => throw new NotImplementedException(); } + public AnchorCalculator(SoilAnchor soilAnchor, IAnchorSoilProperties anchorSoilProperties) { Anchor = soilAnchor; diff --git a/StructureHelperLogics/Models/BeamShears/BeamShearRepository.cs b/StructureHelperLogics/Models/BeamShears/BeamShearRepository.cs index 8c9c269..0df7611 100644 --- a/StructureHelperLogics/Models/BeamShears/BeamShearRepository.cs +++ b/StructureHelperLogics/Models/BeamShears/BeamShearRepository.cs @@ -9,9 +9,9 @@ namespace StructureHelperLogics.Models.BeamShears private ICloneStrategy cloneStrategy; public Guid Id { get; } public List Actions { get; } = new(); - public List Calculators { get; } = new(); public List Sections { get; } = new(); public List Stirrups { get; } = new(); + public List Calculators { get; } = new(); public BeamShearRepository(Guid id) diff --git a/StructureHelperLogics/Models/BeamShears/Factories/BeamShearTemplatesFactory.cs b/StructureHelperLogics/Models/BeamShears/Factories/BeamShearTemplatesFactory.cs index 0821dde..a0842b0 100644 --- a/StructureHelperLogics/Models/BeamShears/Factories/BeamShearTemplatesFactory.cs +++ b/StructureHelperLogics/Models/BeamShears/Factories/BeamShearTemplatesFactory.cs @@ -33,11 +33,11 @@ namespace StructureHelperLogics.Models.BeamShears IBeamShearAction shearAction = BeamShearActionFactory.GetBeamShearAction(ShearActionTypes.DistributedLoad); shearAction.Name = "New shear action"; shearRepository.Actions.Add(shearAction); - BeamShearSection section = new(Guid.Empty) { Name = "New shear section"}; + BeamShearSection section = new(Guid.NewGuid()) { Name = "New shear section"}; shearRepository.Sections.Add(section); - StirrupByRebar stirrupByUniformRebar = new(Guid.Empty) { Name = "New uniform stirrup"}; + StirrupByRebar stirrupByUniformRebar = new(Guid.NewGuid()) { Name = "New uniform stirrup"}; shearRepository.Stirrups.Add(stirrupByUniformRebar); - BeamShearCalculator beamShearCalculator = new(Guid.Empty) { Name = "New shear calculator"}; + BeamShearCalculator beamShearCalculator = new(Guid.NewGuid()) { Name = "New shear calculator"}; beamShearCalculator.InputData.Sections.Add(section); beamShearCalculator.InputData.Stirrups.Add(stirrupByUniformRebar); beamShearCalculator.InputData.Actions.Add(shearAction); diff --git a/StructureHelperLogics/Models/BeamShears/IBeamShearCalculator.cs b/StructureHelperLogics/Models/BeamShears/IBeamShearCalculator.cs index bf371e4..434b9d6 100644 --- a/StructureHelperLogics/Models/BeamShears/IBeamShearCalculator.cs +++ b/StructureHelperLogics/Models/BeamShears/IBeamShearCalculator.cs @@ -10,6 +10,5 @@ namespace StructureHelperLogics.Models.BeamShears public interface IBeamShearCalculator : ICalculator { IBeamShearCalculatorInputData InputData { get; set; } - bool ShowTraceData { get; set; } } } diff --git a/StructureHelperLogics/Models/BeamShears/IBeamShearCalculatorInputData.cs b/StructureHelperLogics/Models/BeamShears/IBeamShearCalculatorInputData.cs index 0ba9f58..4507c6c 100644 --- a/StructureHelperLogics/Models/BeamShears/IBeamShearCalculatorInputData.cs +++ b/StructureHelperLogics/Models/BeamShears/IBeamShearCalculatorInputData.cs @@ -1,10 +1,5 @@ using StructureHelperCommon.Infrastructures.Interfaces; using StructureHelperCommon.Models.Calculators; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace StructureHelperLogics.Models.BeamShears { diff --git a/StructureHelperLogics/Models/BeamShears/IBeamShearRepository.cs b/StructureHelperLogics/Models/BeamShears/IBeamShearRepository.cs index 6b586d3..9159604 100644 --- a/StructureHelperLogics/Models/BeamShears/IBeamShearRepository.cs +++ b/StructureHelperLogics/Models/BeamShears/IBeamShearRepository.cs @@ -6,7 +6,7 @@ using StructureHelperCommon.Models.Calculators; namespace StructureHelperLogics.Models.BeamShears { - public interface IBeamShearRepository : ISaveable, IHasBeamShearActions, IHasCalculators, IHasBeamShearSections, IHasStirrups, ICloneable + public interface IBeamShearRepository : ISaveable, IHasBeamShearActions, IHasBeamShearSections, IHasStirrups,IHasCalculators, ICloneable { } diff --git a/StructureHelperLogics/NdmCalculations/Analyses/ByForces/ForceCalculator.cs b/StructureHelperLogics/NdmCalculations/Analyses/ByForces/ForceCalculator.cs index 1910783..1ed9f77 100644 --- a/StructureHelperLogics/NdmCalculations/Analyses/ByForces/ForceCalculator.cs +++ b/StructureHelperLogics/NdmCalculations/Analyses/ByForces/ForceCalculator.cs @@ -24,7 +24,7 @@ namespace StructureHelperLogics.NdmCalculations.Analyses.ByForces public IShiftTraceLogger? TraceLogger { get; set; } /// public IResult Result { get; private set; } - + public bool ShowTraceData { get; set; } public ForceCalculator( ICheckInputDataLogic checkInputDataLogic, diff --git a/StructureHelperLogics/NdmCalculations/Analyses/ByForces/ForceTupleCalculator.cs b/StructureHelperLogics/NdmCalculations/Analyses/ByForces/ForceTupleCalculator.cs index bf632e3..b27cfe5 100644 --- a/StructureHelperLogics/NdmCalculations/Analyses/ByForces/ForceTupleCalculator.cs +++ b/StructureHelperLogics/NdmCalculations/Analyses/ByForces/ForceTupleCalculator.cs @@ -12,7 +12,6 @@ namespace StructureHelperLogics.NdmCalculations.Analyses.ByForces private IForceTupleCalcLogic calcLogic; public IForceTupleInputData InputData { get; set; } - public string Name { get; set; } public IResult Result => result; public Action ActionToOutputResults { get; set; } diff --git a/StructureHelperLogics/NdmCalculations/Analyses/ByForces/IForceTupleCalculator.cs b/StructureHelperLogics/NdmCalculations/Analyses/ByForces/IForceTupleCalculator.cs index 1a4b539..76127a9 100644 --- a/StructureHelperLogics/NdmCalculations/Analyses/ByForces/IForceTupleCalculator.cs +++ b/StructureHelperLogics/NdmCalculations/Analyses/ByForces/IForceTupleCalculator.cs @@ -10,7 +10,7 @@ namespace StructureHelperLogics.NdmCalculations.Analyses.ByForces /// /// Calculator for obtaining solution from loader calculator /// - public interface IForceTupleCalculator : ICalculator, IHasActionByResult + public interface IForceTupleCalculator : ILogicCalculator, IHasActionByResult { /// /// Input data for analysis diff --git a/StructureHelperLogics/NdmCalculations/Analyses/ByForces/LimitCurve/ILimitCurveCalculator.cs b/StructureHelperLogics/NdmCalculations/Analyses/ByForces/LimitCurve/ILimitCurveCalculator.cs index 645dd7d..b9f2682 100644 --- a/StructureHelperLogics/NdmCalculations/Analyses/ByForces/LimitCurve/ILimitCurveCalculator.cs +++ b/StructureHelperLogics/NdmCalculations/Analyses/ByForces/LimitCurve/ILimitCurveCalculator.cs @@ -2,7 +2,7 @@ namespace StructureHelperLogics.NdmCalculations.Analyses.ByForces { - public interface ILimitCurveCalculator : ICalculator, IHasActionByResult + public interface ILimitCurveCalculator : ILogicCalculator, IHasActionByResult { Action ActionToOutputResults { get; set; } ISurroundData SurroundData { get; set; } diff --git a/StructureHelperLogics/NdmCalculations/Analyses/ByForces/LimitCurve/LimitCurvesCalculator.cs b/StructureHelperLogics/NdmCalculations/Analyses/ByForces/LimitCurve/LimitCurvesCalculator.cs index f273803..d05ed43 100644 --- a/StructureHelperLogics/NdmCalculations/Analyses/ByForces/LimitCurve/LimitCurvesCalculator.cs +++ b/StructureHelperLogics/NdmCalculations/Analyses/ByForces/LimitCurve/LimitCurvesCalculator.cs @@ -20,18 +20,14 @@ namespace StructureHelperLogics.NdmCalculations.Analyses.ByForces private LimitCurvesCalculatorUpdateStrategy updateStrategy => new(); public Guid Id { get; } - public string Name { get; set; } - public ILimitCurvesCalculatorInputData InputData { get; set; } + public string Name { get; set; } = "New calculator"; + public ILimitCurvesCalculatorInputData InputData { get; set; } = new LimitCurvesCalculatorInputData(); public IResult Result => result; public Action ActionToOutputResults { get; set; } public IShiftTraceLogger? TraceLogger { get; set; } + public bool ShowTraceData { get; set; } = false; - public LimitCurvesCalculator() - { - Name = "New calculator"; - InputData = new LimitCurvesCalculatorInputData(); - } public void Run() { TraceLogger?.AddMessage($"Calculator type: {GetType()}", TraceLogStatuses.Service); diff --git a/StructureHelperLogics/NdmCalculations/Analyses/ByForces/Logics/ForceCalculatorUpdateStrategy.cs b/StructureHelperLogics/NdmCalculations/Analyses/ByForces/Logics/ForceCalculatorUpdateStrategy.cs index ce29e46..e7b6b24 100644 --- a/StructureHelperLogics/NdmCalculations/Analyses/ByForces/Logics/ForceCalculatorUpdateStrategy.cs +++ b/StructureHelperLogics/NdmCalculations/Analyses/ByForces/Logics/ForceCalculatorUpdateStrategy.cs @@ -1,6 +1,4 @@ using StructureHelperCommon.Infrastructures.Interfaces; -using StructureHelperCommon.Models.Calculators; -using StructureHelperCommon.Models.Sections; using StructureHelperCommon.Services; namespace StructureHelperLogics.NdmCalculations.Analyses.ByForces.Logics @@ -19,6 +17,7 @@ namespace StructureHelperLogics.NdmCalculations.Analyses.ByForces.Logics CheckObject.IsNull(sourceObject); if (ReferenceEquals(targetObject, sourceObject)) { return; } targetObject.Name = sourceObject.Name; + targetObject.ShowTraceData = sourceObject.ShowTraceData; targetObject.InputData ??= new ForceCalculatorInputData(); inputDataUpdateStrategy.Update(targetObject.InputData, sourceObject.InputData); } diff --git a/StructureHelperLogics/NdmCalculations/Analyses/Geometry/GeometryCalculator.cs b/StructureHelperLogics/NdmCalculations/Analyses/Geometry/GeometryCalculator.cs index 1e40718..8647c4a 100644 --- a/StructureHelperLogics/NdmCalculations/Analyses/Geometry/GeometryCalculator.cs +++ b/StructureHelperLogics/NdmCalculations/Analyses/Geometry/GeometryCalculator.cs @@ -10,7 +10,6 @@ namespace StructureHelperLogics.NdmCalculations.Analyses.Geometry { IParametersLogic parametersLogic; IGeometryResult geometryResult; - public string Name { get; set; } public IResult Result => geometryResult; diff --git a/StructureHelperLogics/NdmCalculations/Analyses/Geometry/IGeometryCalculator.cs b/StructureHelperLogics/NdmCalculations/Analyses/Geometry/IGeometryCalculator.cs index 349d38f..3fd02ca 100644 --- a/StructureHelperLogics/NdmCalculations/Analyses/Geometry/IGeometryCalculator.cs +++ b/StructureHelperLogics/NdmCalculations/Analyses/Geometry/IGeometryCalculator.cs @@ -2,7 +2,7 @@ namespace StructureHelperLogics.NdmCalculations.Analyses.Geometry { - public interface IGeometryCalculator : ICalculator + public interface IGeometryCalculator : ILogicCalculator { } } diff --git a/StructureHelperLogics/NdmCalculations/Buckling/ConcreteBucklingCalculator.cs b/StructureHelperLogics/NdmCalculations/Buckling/ConcreteBucklingCalculator.cs index e9de060..8b446b2 100644 --- a/StructureHelperLogics/NdmCalculations/Buckling/ConcreteBucklingCalculator.cs +++ b/StructureHelperLogics/NdmCalculations/Buckling/ConcreteBucklingCalculator.cs @@ -27,8 +27,6 @@ namespace StructureHelperLogics.NdmCalculations.Buckling IForcesTupleResult forcesResults; private ITriangulatePrimitiveLogic triangulateLogic; - public string Name { get; set; } - public IResult Result { get; private set; } public IAccuracy Accuracy { get; set; } diff --git a/StructureHelperLogics/NdmCalculations/Buckling/IConcreteBucklingCalculator.cs b/StructureHelperLogics/NdmCalculations/Buckling/IConcreteBucklingCalculator.cs index 5c01875..63c07ad 100644 --- a/StructureHelperLogics/NdmCalculations/Buckling/IConcreteBucklingCalculator.cs +++ b/StructureHelperLogics/NdmCalculations/Buckling/IConcreteBucklingCalculator.cs @@ -1,14 +1,8 @@ using StructureHelperCommon.Models.Calculators; -using StructureHelperLogics.NdmCalculations.Analyses; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace StructureHelperLogics.NdmCalculations.Buckling { - internal interface IConcreteBucklingCalculator : ICalculator + internal interface IConcreteBucklingCalculator : ILogicCalculator { IAccuracy Accuracy { get; set; } } diff --git a/StructureHelperLogics/NdmCalculations/Cracking/CrackCalculator.cs b/StructureHelperLogics/NdmCalculations/Cracking/CrackCalculator.cs index 9769e6a..c7bf105 100644 --- a/StructureHelperLogics/NdmCalculations/Cracking/CrackCalculator.cs +++ b/StructureHelperLogics/NdmCalculations/Cracking/CrackCalculator.cs @@ -35,7 +35,7 @@ namespace StructureHelperLogics.NdmCalculations.Cracking public IResult Result => result; public IShiftTraceLogger? TraceLogger { get; set; } - + public bool ShowTraceData { get; set; } public CrackCalculator(ICheckInputDataLogic checkInputDataLogic, IUpdateStrategy updateStrategy, diff --git a/StructureHelperLogics/NdmCalculations/Cracking/CrackCalculatorUpdateStrategy.cs b/StructureHelperLogics/NdmCalculations/Cracking/CrackCalculatorUpdateStrategy.cs index 6817e23..035b6c9 100644 --- a/StructureHelperLogics/NdmCalculations/Cracking/CrackCalculatorUpdateStrategy.cs +++ b/StructureHelperLogics/NdmCalculations/Cracking/CrackCalculatorUpdateStrategy.cs @@ -1,10 +1,5 @@ using StructureHelperCommon.Infrastructures.Interfaces; using StructureHelperCommon.Services; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace StructureHelperLogics.NdmCalculations.Cracking { @@ -22,8 +17,8 @@ namespace StructureHelperLogics.NdmCalculations.Cracking CheckObject.IsNull(targetObject); CheckObject.IsNull(sourceObject); if (ReferenceEquals(targetObject, sourceObject)) { return; } - targetObject.Name = sourceObject.Name; + targetObject.ShowTraceData = sourceObject.ShowTraceData; targetObject.InputData ??= new CrackCalculatorInputData(); inputDataUpdateStrategy.Update(targetObject.InputData, sourceObject.InputData); } diff --git a/StructureHelperLogics/NdmCalculations/Cracking/CrackForceBynarySearchCalculator.cs b/StructureHelperLogics/NdmCalculations/Cracking/CrackForceBynarySearchCalculator.cs index 53ce496..2f62540 100644 --- a/StructureHelperLogics/NdmCalculations/Cracking/CrackForceBynarySearchCalculator.cs +++ b/StructureHelperLogics/NdmCalculations/Cracking/CrackForceBynarySearchCalculator.cs @@ -1,11 +1,8 @@ -using LoaderCalculator.Data.Ndms; -using StructureHelperCommon.Infrastructures.Exceptions; +using StructureHelperCommon.Infrastructures.Exceptions; using StructureHelperCommon.Infrastructures.Interfaces; -using StructureHelperCommon.Infrastructures.Settings; using StructureHelperCommon.Models; using StructureHelperCommon.Models.Calculators; using StructureHelperCommon.Models.Forces; -using StructureHelperCommon.Services; using StructureHelperCommon.Services.Forces; using StructureHelperLogics.NdmCalculations.Analyses.ByForces; using StructureHelperLogics.NdmCalculations.Analyses.ByForces.Logics; diff --git a/StructureHelperLogics/NdmCalculations/Cracking/CrackForceSteppedSearchCalculator.cs b/StructureHelperLogics/NdmCalculations/Cracking/CrackForceSteppedSearchCalculator.cs deleted file mode 100644 index 2626b3f..0000000 --- a/StructureHelperLogics/NdmCalculations/Cracking/CrackForceSteppedSearchCalculator.cs +++ /dev/null @@ -1,32 +0,0 @@ -using StructureHelperCommon.Models; -using StructureHelperCommon.Models.Calculators; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace StructureHelperLogics.NdmCalculations.Cracking -{ - public class CrackForceSteppedSearchCalculator : ICrackForceCalculator - { - public ICrackForceCalculatorInputData InputData { get; set; } - public string Name { get; set; } - - public IResult Result => throw new NotImplementedException(); - - public IShiftTraceLogger? TraceLogger { get; set; } - - public Guid Id => throw new NotImplementedException(); - - public object Clone() - { - throw new NotImplementedException(); - } - - public void Run() - { - throw new NotImplementedException(); - } - } -} diff --git a/StructureHelperLogics/NdmCalculations/Cracking/ICrackForceCalculator.cs b/StructureHelperLogics/NdmCalculations/Cracking/ICrackForceCalculator.cs index 1856fe2..7a4752f 100644 --- a/StructureHelperLogics/NdmCalculations/Cracking/ICrackForceCalculator.cs +++ b/StructureHelperLogics/NdmCalculations/Cracking/ICrackForceCalculator.cs @@ -2,9 +2,8 @@ namespace StructureHelperLogics.NdmCalculations.Cracking { - public interface ICrackForceCalculator : ICalculator + public interface ICrackForceCalculator : ILogicCalculator { ICrackForceCalculatorInputData InputData { get; set; } - string Name { get; set; } } } \ No newline at end of file diff --git a/StructureHelperLogics/NdmCalculations/Cracking/IRebarCrackCalculator.cs b/StructureHelperLogics/NdmCalculations/Cracking/IRebarCrackCalculator.cs index 70412f2..a7d5a6f 100644 --- a/StructureHelperLogics/NdmCalculations/Cracking/IRebarCrackCalculator.cs +++ b/StructureHelperLogics/NdmCalculations/Cracking/IRebarCrackCalculator.cs @@ -3,7 +3,7 @@ using StructureHelperCommon.Models.Calculators; namespace StructureHelperLogics.NdmCalculations.Cracking { - public interface IRebarCrackCalculator : ICalculator + public interface IRebarCrackCalculator : ILogicCalculator { Action ActionToOutputResults { get; set; } RebarCrackCalculatorInputData InputData { get; set; } diff --git a/StructureHelperLogics/NdmCalculations/Cracking/IRebarStressCalculator.cs b/StructureHelperLogics/NdmCalculations/Cracking/IRebarStressCalculator.cs index 4ce9d29..541ebd1 100644 --- a/StructureHelperLogics/NdmCalculations/Cracking/IRebarStressCalculator.cs +++ b/StructureHelperLogics/NdmCalculations/Cracking/IRebarStressCalculator.cs @@ -2,7 +2,7 @@ namespace StructureHelperLogics.NdmCalculations.Cracking { - public interface IRebarStressCalculator : ICalculator + public interface IRebarStressCalculator : ILogicCalculator { IRebarStressCalculatorInputData InputData { get; set; } } diff --git a/StructureHelperLogics/NdmCalculations/Cracking/RebarCrackCalculator.cs b/StructureHelperLogics/NdmCalculations/Cracking/RebarCrackCalculator.cs index 22a2621..413af23 100644 --- a/StructureHelperLogics/NdmCalculations/Cracking/RebarCrackCalculator.cs +++ b/StructureHelperLogics/NdmCalculations/Cracking/RebarCrackCalculator.cs @@ -1,11 +1,7 @@ -using StructureHelperCommon.Infrastructures.Enums; -using StructureHelperCommon.Infrastructures.Exceptions; -using StructureHelperCommon.Infrastructures.Interfaces; +using StructureHelperCommon.Infrastructures.Interfaces; using StructureHelperCommon.Models; using StructureHelperCommon.Models.Calculators; -using StructureHelperCommon.Models.Forces; using StructureHelperCommon.Models.Loggers; -using StructureHelperLogics.NdmCalculations.Primitives; namespace StructureHelperLogics.NdmCalculations.Cracking { @@ -15,7 +11,6 @@ namespace StructureHelperLogics.NdmCalculations.Cracking private RebarCrackResult result; private ICheckInputDataLogic checkInputDataLogic; - public string Name { get; set; } public RebarCrackCalculatorInputData InputData { get; set; } public IResult Result => result; diff --git a/StructureHelperLogics/NdmCalculations/Cracking/RebarStressCalculator.cs b/StructureHelperLogics/NdmCalculations/Cracking/RebarStressCalculator.cs index e071b84..574dbbb 100644 --- a/StructureHelperLogics/NdmCalculations/Cracking/RebarStressCalculator.cs +++ b/StructureHelperLogics/NdmCalculations/Cracking/RebarStressCalculator.cs @@ -22,7 +22,6 @@ namespace StructureHelperLogics.NdmCalculations.Cracking private RebarStressResult result; public IRebarStressCalculatorInputData InputData { get; set; } - public string Name { get; set; } public IResult Result => result; diff --git a/StructureHelperLogics/NdmCalculations/Cracking/TupleCrackCalculator.cs b/StructureHelperLogics/NdmCalculations/Cracking/TupleCrackCalculator.cs index 2c30fec..031b32a 100644 --- a/StructureHelperLogics/NdmCalculations/Cracking/TupleCrackCalculator.cs +++ b/StructureHelperLogics/NdmCalculations/Cracking/TupleCrackCalculator.cs @@ -1,7 +1,5 @@ using LoaderCalculator.Data.Ndms; -using StructureHelper.Models.Materials; using StructureHelperCommon.Infrastructures.Enums; -using StructureHelperCommon.Infrastructures.Exceptions; using StructureHelperCommon.Infrastructures.Interfaces; using StructureHelperCommon.Models; using StructureHelperCommon.Models.Calculators; @@ -10,15 +8,13 @@ using StructureHelperCommon.Models.Loggers; using StructureHelperCommon.Services.Forces; using StructureHelperLogics.NdmCalculations.Analyses.ByForces; using StructureHelperLogics.NdmCalculations.Primitives; -using StructureHelperLogics.NdmCalculations.Triangulations; -using StructureHelperLogics.Services.NdmPrimitives; //Copyright (c) 2024 Redikultsev Evgeny, Ekaterinburg, Russia //All rights reserved. namespace StructureHelperLogics.NdmCalculations.Cracking { - public class TupleCrackCalculator : ICalculator + public class TupleCrackCalculator : ILogicCalculator { private const CalcTerms crackingTerm = CalcTerms.ShortTerm; private const LimitStates crackingLimitState = LimitStates.SLS; @@ -37,7 +33,6 @@ namespace StructureHelperLogics.NdmCalculations.Cracking private double shortLength; private ICheckInputDataLogic checkInputDataLogic; - public string Name { get; set; } public TupleCrackInputData InputData { get; set; } public IResult Result => result;