Fix removing primitives

This commit is contained in:
Evgeny Redikultsev
2025-12-07 18:36:50 +05:00
parent 70bfd065c4
commit 681ab17781
32 changed files with 697 additions and 224 deletions

View File

@@ -7,13 +7,11 @@ namespace DataAccess.DTOs
{
public class CurvatureCalculatorInputDataToDTOConvertStrategy : ConvertStrategy<CurvatureCalculatorInputDataDTO, ICurvatureCalculatorInputData>
{
private IHasPrimitivesProcessLogic primitivesProcessLogic;
private IHasForceActionsProcessLogic actionsProcessLogic;
private IProcessLogic<IHasForcesAndPrimitives> actionsProcessLogic;
private IUpdateStrategy<ICurvatureCalculatorInputData> updateStrategy;
private IConvertStrategy<DeflectionFactorDTO, IDeflectionFactor> deflectionConvertStrategy;
private IHasPrimitivesProcessLogic PrimitivesProcessLogic => primitivesProcessLogic ??= new HasPrimitivesProcessLogic(ConvertDirection.ToDTO) { ReferenceDictionary = ReferenceDictionary, TraceLogger = TraceLogger};
private IHasForceActionsProcessLogic ActionsProcessLogic => actionsProcessLogic ??= new HasForceActionsProcessLogic(ConvertDirection.ToDTO) { ReferenceDictionary = ReferenceDictionary, TraceLogger = TraceLogger};
private IProcessLogic<IHasForcesAndPrimitives> ForceAndPrimitivesLogic => actionsProcessLogic ??= new HasForcesAndPrimitivesProcessLogic(ConvertDirection.ToDTO) { ReferenceDictionary = ReferenceDictionary, TraceLogger = TraceLogger };
private IUpdateStrategy<ICurvatureCalculatorInputData> UpdateStrategy => updateStrategy ??= new CurvatureCalculatorInputDataUpdateStrategy() { UpdateChildren = false};
private IConvertStrategy<DeflectionFactorDTO, IDeflectionFactor> DeflectionConvertStrategy => deflectionConvertStrategy ??= new DeflectionFactorToDTOConvertStrategy(this);
@@ -23,25 +21,19 @@ namespace DataAccess.DTOs
public override CurvatureCalculatorInputDataDTO GetNewItem(ICurvatureCalculatorInputData source)
{
ChildClass = this;
NewItem = new(source.Id);
UpdateStrategy.Update(NewItem, source);
NewItem.DeflectionFactor = DeflectionConvertStrategy.Convert(source.DeflectionFactor);
ProcessPrimitives(source);
ProcessActions(source);
return NewItem;
}
private void ProcessPrimitives(IHasPrimitives source)
private void ProcessActions(IHasForcesAndPrimitives source)
{
PrimitivesProcessLogic.Source = source;
PrimitivesProcessLogic.Target = NewItem;
PrimitivesProcessLogic.Process();
}
private void ProcessActions(IHasForceActions source)
{
ActionsProcessLogic.Source = source;
ActionsProcessLogic.Target = NewItem;
ActionsProcessLogic.Process();
ForceAndPrimitivesLogic.Source = source;
ForceAndPrimitivesLogic.Target = NewItem;
ForceAndPrimitivesLogic.Process();
}
}
}