Fix saving of beam shear calculator input data

This commit is contained in:
ear
2025-09-01 18:16:25 +05:00
parent 5e45be35b1
commit 98c94dc232
6 changed files with 1434 additions and 7 deletions

View File

@@ -1,4 +1,5 @@
using DataAccess.DTOs.Converters.BeamShears;
using StructureHelperCommon.Infrastructures.Exceptions;
using StructureHelperCommon.Infrastructures.Interfaces;
using StructureHelperLogics.Models.BeamShears;
@@ -24,7 +25,14 @@ namespace DataAccess.DTOs
actionUpdateStrategy.Update(NewItem, source);
sectionUpdateStrategy.Update(NewItem, source);
stirrupUpdateStrategy.Update(NewItem, source);
if (source.DesignRangeProperty is BeamShearDesignRangePropertyDTO propertyDTO)
{
NewItem.DesignRangeProperty = designRangeConvertStrategy.Convert(propertyDTO);
}
else
{
throw new StructureHelperException(ErrorStrings.ObjectTypeIsUnknownObj(source.DesignRangeProperty));
}
return NewItem;
}

View File

@@ -1,12 +1,11 @@
using DataAccess.DTOs.Converters.BeamShears;
using StructureHelperCommon.Infrastructures.Interfaces;
using StructureHelperCommon.Models;
using StructureHelperCommon.Infrastructures.Interfaces;
using StructureHelperLogics.Models.BeamShears;
namespace DataAccess.DTOs
{
public class BeamShearCalculatorInputDataToDTOConvertStrategy : ConvertStrategy<BeamShearCalculatorInputDataDTO, IBeamShearCalculatorInputData>
{
private IUpdateStrategy<IBeamShearCalculatorInputData> updateStrategy;
private IUpdateStrategy<IHasBeamShearActions> actionUpdateStrategy;
private IUpdateStrategy<IHasBeamShearSections> sectionUpdateStrategy;
private IUpdateStrategy<IHasStirrups> stirrupUpdateStrategy;
@@ -20,6 +19,7 @@ namespace DataAccess.DTOs
{
InitializeStrategies();
NewItem = new(source.Id);
updateStrategy.Update(NewItem, source);
actionUpdateStrategy.Update(NewItem, source);
sectionUpdateStrategy.Update(NewItem, source);
stirrupUpdateStrategy.Update(NewItem, source);
@@ -29,6 +29,7 @@ namespace DataAccess.DTOs
private void InitializeStrategies()
{
updateStrategy ??= new BeamShearCalculatorInputDataUpdateStrategy();
actionUpdateStrategy ??= new HasBeamShearActionsToDTOUpdateStrategy(ReferenceDictionary, TraceLogger);
sectionUpdateStrategy ??= new HasBeamShearSectionsToDTORenameStrategy(ReferenceDictionary, TraceLogger);
stirrupUpdateStrategy ??= new HasStirrupsToDTOUpdateStrategy(ReferenceDictionary, TraceLogger);