예제 #1
0
 private static void SetStepSize(WaveConditionsCalculationConfiguration calculationConfiguration,
                                 ICalculation <WaveConditionsInput> calculation)
 {
     if (calculationConfiguration.StepSize.HasValue)
     {
         calculation.InputParameters.StepSize = (WaveConditionsInputStepSize)calculationConfiguration.StepSize.Value;
     }
 }
예제 #2
0
        private void SetConfigurationTargetProbabilityProperty(WaveConditionsCalculationConfiguration configuration, WaveConditionsInput input)
        {
            if (input.WaterLevelType == WaveConditionsInputWaterLevelType.None)
            {
                return;
            }

            configuration.TargetProbability = WaveConditionsInputHelper.GetTargetProbability(input, assessmentSection);
        }
예제 #3
0
        private static void SetConfigurationForeshoreProfileDependentProperties(WaveConditionsCalculationConfiguration configuration,
                                                                                WaveConditionsInput input)
        {
            if (input.ForeshoreProfile == null)
            {
                return;
            }

            configuration.ForeshoreProfileId = input.ForeshoreProfile?.Id;
            configuration.WaveReduction      = new WaveReductionConfiguration
            {
                UseForeshoreProfile = input.UseForeshore,
                UseBreakWater       = input.UseBreakWater,
                BreakWaterHeight    = input.BreakWater.Height
            };

            if (Enum.IsDefined(typeof(BreakWaterType), input.BreakWater.Type))
            {
                configuration.WaveReduction.BreakWaterType = (ConfigurationBreakWaterType?)
                                                             new ConfigurationBreakWaterTypeConverter().ConvertFrom(input.BreakWater.Type);
            }
        }
예제 #4
0
        /// <summary>
        /// Assigns the boundaries of the calculation.
        /// </summary>
        /// <param name="calculationConfiguration">The calculation read from the imported file.</param>
        /// <param name="calculation">The calculation to configure.</param>
        /// <returns><c>false</c> when one of the boundaries is invalid, <c>true</c> otherwise.</returns>
        private bool TrySetBoundaries(WaveConditionsCalculationConfiguration calculationConfiguration,
                                      ICalculation <WaveConditionsInput> calculation)
        {
            WaveConditionsInput input = calculation.InputParameters;

            return(TryReadParameter(calculationConfiguration.UpperBoundaryRevetment,
                                    v => input.UpperBoundaryRevetment = v,
                                    Resources.WaveConditionsCalculationConfigurationImporter_UpperBoundaryRevetment_DisplayName,
                                    calculation.Name) &&
                   TryReadParameter(calculationConfiguration.LowerBoundaryRevetment,
                                    v => input.LowerBoundaryRevetment = v,
                                    Resources.WaveConditionsCalculationConfigurationImporter_LowerBoundaryRevetment_DisplayName,
                                    calculation.Name) &&
                   TryReadParameter(calculationConfiguration.UpperBoundaryWaterLevels,
                                    v => input.UpperBoundaryWaterLevels = v,
                                    Resources.WaveConditionsCalculationConfigurationImporter_UpperBoundaryWaterLevels_DisplayName,
                                    calculation.Name) &&
                   TryReadParameter(calculationConfiguration.LowerBoundaryWaterLevels,
                                    v => input.LowerBoundaryWaterLevels = v,
                                    Resources.WaveConditionsCalculationConfigurationImporter_LowerBoundaryWaterLevels_DisplayName,
                                    calculation.Name));
        }
예제 #5
0
        /// <summary>
        /// Assigns the orientation.
        /// </summary>
        /// <param name="calculationConfiguration">The calculation read from the imported file.</param>
        /// <param name="calculation">The calculation to configure.</param>
        /// <returns><c>false</c> when the orientation is invalid, <c>true</c> otherwise.</returns>
        private bool TrySetOrientation(WaveConditionsCalculationConfiguration calculationConfiguration,
                                       ICalculation <WaveConditionsInput> calculation)
        {
            if (calculationConfiguration.Orientation.HasValue)
            {
                double orientation = calculationConfiguration.Orientation.Value;

                try
                {
                    calculation.InputParameters.Orientation = (RoundedDouble)orientation;
                }
                catch (ArgumentOutOfRangeException e)
                {
                    Log.LogOutOfRangeException(string.Format(
                                                   RiskeerCommonIOResources.TryReadParameter_Value_0_ParameterName_1_is_invalid,
                                                   orientation,
                                                   RiskeerCommonIOResources.CalculationConfigurationImporter_Orientation_DisplayName),
                                               calculation.Name, e);
                    return(false);
                }
            }

            return(true);
        }