using System.Collections.Generic; using Wti.Calculation.Piping; using Wti.Data; namespace Wti.Service { /// /// This class controls the and its PipingDataNodePresenter. /// Interactions from the PipingDataNodePresenter are handles by this class. /// public static class PipingCalculationService { /// /// Performs a piping calculation based on the supplied and sets /// to the if the calculation was successful. /// /// The to base the input for the calculation upon. /// Thrown when calling would return a non empty . public static void Calculate(PipingData pipingData) { var input = new PipingCalculationInput( pipingData.WaterVolumetricWeight, pipingData.UpliftModelFactor, pipingData.AssessmentLevel, pipingData.PiezometricHeadExit, pipingData.DampingFactorExit, pipingData.PhreaticLevelExit, pipingData.PiezometricHeadPolder, pipingData.CriticalHeaveGradient, pipingData.ThicknessCoverageLayer, pipingData.SellmeijerModelFactor, pipingData.SellmeijerReductionFactor, pipingData.SeepageLength, pipingData.SandParticlesVolumicWeight, pipingData.WhitesDragCoefficient, pipingData.Diameter70, pipingData.DarcyPermeability, pipingData.WaterKinematicViscosity, pipingData.Gravity, pipingData.ThicknessAquiferLayer, pipingData.MeanDiameter70, pipingData.BeddingAngle, pipingData.ExitPointXCoordinate ); var pipingCalculation = new PipingCalculation(input); var pipingResult = pipingCalculation.Calculate(); pipingData.Output = new PipingOutput(pipingResult.UpliftZValue, pipingResult.UpliftFactorOfSafety, pipingResult.HeaveZValue, pipingResult.HeaveFactorOfSafety, pipingResult.SellmeijerZValue, pipingResult.SellmeijerFactorOfSafety); } public static List Validate(PipingData pipingData) { return null; } } }