Extract sum shear force logic
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
using StructureHelperCommon.Models;
|
||||
using StructureHelperCommon.Models.Forces;
|
||||
using StructureHelperCommon.Models.Forces.Logics;
|
||||
using StructureHelperCommon.Models.Loggers;
|
||||
|
||||
namespace StructureHelperLogics.Models.BeamShears
|
||||
{
|
||||
public class ShearForceLogic : IShearForceLogic
|
||||
{
|
||||
private IGetLoadFactor getFactorLogic;
|
||||
private IGetDirectShearForceLogic getDirectShearForceLogic;
|
||||
|
||||
public IShearForceLogicInputData InputData { get;}
|
||||
public IShiftTraceLogger? TraceLogger { get; set; }
|
||||
|
||||
public ShearForceLogic(IShearForceLogicInputData inputData, IShiftTraceLogger? traceLogger)
|
||||
{
|
||||
InputData = inputData;
|
||||
TraceLogger = traceLogger;
|
||||
}
|
||||
|
||||
public ShearForceLogic(
|
||||
IShearForceLogicInputData inputData,
|
||||
IShiftTraceLogger? traceLogger,
|
||||
IGetLoadFactor getFactorLogic,
|
||||
IGetDirectShearForceLogic getDirectShearForceLogic)
|
||||
{
|
||||
InputData = inputData;
|
||||
TraceLogger = traceLogger;
|
||||
this.getFactorLogic = getFactorLogic;
|
||||
this.getDirectShearForceLogic = getDirectShearForceLogic;
|
||||
}
|
||||
|
||||
public double GetShearForce()
|
||||
{
|
||||
TraceLogger?.AddMessage(LoggerStrings.LogicType(this), TraceLogStatuses.Service);
|
||||
InitializeStrategies();
|
||||
double factor = getFactorLogic.GetFactor();
|
||||
double directShearForce = getDirectShearForceLogic.CalculateShearForce();
|
||||
double shearForce = directShearForce * factor;
|
||||
return shearForce;
|
||||
}
|
||||
|
||||
private void InitializeStrategies()
|
||||
{
|
||||
getFactorLogic ??= new GetFactorByFactoredCombinationProperty()
|
||||
{
|
||||
CombinationProperty = InputData.AxisAction.FactoredCombinationProperty,
|
||||
LimitState = InputData.LimitState,
|
||||
CalcTerm = InputData.CalcTerm
|
||||
};
|
||||
getDirectShearForceLogic ??= new GetDirectShearForceLogic(InputData.AxisAction, InputData.InclinedSection, TraceLogger);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user