Add converting beam shear analysis from DTOs

This commit is contained in:
Evgeny Redikultsev
2025-06-15 21:11:02 +05:00
parent 4845a35ba5
commit 87996cf37b
48 changed files with 992 additions and 105 deletions

View File

@@ -0,0 +1,46 @@
using StructureHelperCommon.Infrastructures.Exceptions;
using StructureHelperCommon.Infrastructures.Interfaces;
using StructureHelperCommon.Models.Forces;
using StructureHelperCommon.Services;
namespace DataAccess.DTOs
{
internal class BeamSpanLoadFromDTOConvertStrategy : ConvertStrategy<IBeamSpanLoad, IBeamSpanLoad>
{
public BeamSpanLoadFromDTOConvertStrategy(IBaseConvertStrategy baseConvertStrategy) : base(baseConvertStrategy)
{
}
public override IBeamSpanLoad GetNewItem(IBeamSpanLoad source)
{
CheckObject.IsNull(source);
if (source is DistributedLoadDTO distributed)
{
ProcessDistributed(distributed);
}
else if (source is ConcentratedForceDTO concentrated)
{
ProcessConcentrated(concentrated);
}
else
{
throw new StructureHelperException(ErrorStrings.ObjectTypeIsUnknownObj(source));
}
return NewItem;
}
private void ProcessConcentrated(ConcentratedForceDTO concentrated)
{
var convertLogic = new DictionaryConvertStrategy<ConcentratedForce, ConcentratedForceDTO>
(this, new ConcentratedForceFromDTOConvertStrategy(this));
NewItem = convertLogic.Convert(concentrated);
}
private void ProcessDistributed(DistributedLoadDTO distributed)
{
var convertLogic = new DictionaryConvertStrategy<DistributedLoad, DistributedLoadDTO>
(this, new DistributedLoadFromDTOConvertStrategy(this));
NewItem = convertLogic.Convert(distributed);
}
}
}