Index: Riskeer/Piping/src/Riskeer.Piping.Service/Probabilistic/ProbabilisticPipingCalculationService.cs =================================================================== diff -u -r44472a4abdebe721072cb648140d9254bc25bd1a -r2d896c48d4bb6a88b80b6bfb3146ee14737b2921 --- Riskeer/Piping/src/Riskeer.Piping.Service/Probabilistic/ProbabilisticPipingCalculationService.cs (.../ProbabilisticPipingCalculationService.cs) (revision 44472a4abdebe721072cb648140d9254bc25bd1a) +++ Riskeer/Piping/src/Riskeer.Piping.Service/Probabilistic/ProbabilisticPipingCalculationService.cs (.../ProbabilisticPipingCalculationService.cs) (revision 2d896c48d4bb6a88b80b6bfb3146ee14737b2921) @@ -27,7 +27,6 @@ using log4net; using Riskeer.Common.Data.AssessmentSection; using Riskeer.Common.Data.Exceptions; -using Riskeer.Common.Data.FailureMechanism; using Riskeer.Common.Data.Hydraulics; using Riskeer.Common.Data.IllustrationPoints; using Riskeer.Common.Data.Probabilistics; @@ -82,14 +81,14 @@ throw new ArgumentNullException(nameof(calculation)); } - if (assessmentSection == null) + if (failureMechanism == null) { - throw new ArgumentNullException(nameof(assessmentSection)); + throw new ArgumentNullException(nameof(failureMechanism)); } - if (failureMechanism == null) + if (assessmentSection == null) { - throw new ArgumentNullException(nameof(failureMechanism)); + throw new ArgumentNullException(nameof(assessmentSection)); } CalculationServiceHelper.LogValidationBegin(); @@ -453,30 +452,21 @@ { string[] messages = ValidateHydraulicBoundaryDatabase(assessmentSection).ToArray(); - if (messages.Length > 0) + if (messages.Length == 0) { - CalculationServiceHelper.LogMessagesAsError(messages); - return true; + messages = ValidateFailureMechanismHasSections(failureMechanism).ToArray(); } - messages = ValidateFailureMechanismHasSections(failureMechanism).ToArray(); - - if (messages.Length > 0) + if (messages.Length == 0) { - CalculationServiceHelper.LogMessagesAsError(messages); - return true; + messages = ValidateInput(calculation.InputParameters, failureMechanism.GeneralInput).ToArray(); } - messages = ValidateInput(calculation.InputParameters, failureMechanism.GeneralInput).ToArray(); - - if (messages.Length > 0) + if (messages.Length == 0) { - CalculationServiceHelper.LogMessagesAsError(messages); - return true; + messages = ValidateCalculationInMultipleSections(calculation, failureMechanism).ToArray(); } - messages = ValidateCalculationInMultipleSections(calculation, failureMechanism).ToArray(); - if (messages.Length > 0) { CalculationServiceHelper.LogMessagesAsError(messages); @@ -486,37 +476,6 @@ return false; } - private static IEnumerable ValidateFailureMechanismHasSections(PipingFailureMechanism failureMechanism) - { - var validationResults = new List(); - - FailureMechanismSection[] sections = failureMechanism.Sections.ToArray(); - - if (sections.Length == 0) - { - validationResults.Add(Resources.ProbabilisticPipingCalculationService_ValidateSections_No_sections_imported); - } - - return validationResults; - } - - private static IEnumerable ValidateCalculationInMultipleSections(ProbabilisticPipingCalculation calculation, PipingFailureMechanism failureMechanism) - { - var validationResults = new List(); - - FailureMechanismSection[] sections = failureMechanism - .Sections - .Where(section => calculation.IsSurfaceLineIntersectionWithReferenceLineInSection(Math2D.ConvertPointsToLineSegments(section.Points))) - .ToArray(); - - if (sections.Length > 1) - { - validationResults.Add(Resources.ProbabilisticPipingCalculationService_ValidateSections_Cannot_determine_section_for_calculation); - } - - return validationResults; - } - private static IEnumerable ValidateHydraulicBoundaryDatabase(IAssessmentSection assessmentSection) { string preprocessorDirectory = assessmentSection.HydraulicBoundaryDatabase.EffectivePreprocessorDirectory(); @@ -533,6 +492,14 @@ } } + private static IEnumerable ValidateFailureMechanismHasSections(PipingFailureMechanism failureMechanism) + { + if (!failureMechanism.Sections.Any()) + { + yield return Resources.ProbabilisticPipingCalculationService_ValidateFailureMechanismHasSections_No_sections_imported; + } + } + private static IEnumerable ValidateInput(ProbabilisticPipingInput input, GeneralPipingInput generalInput) { var validationResults = new List(); @@ -564,6 +531,18 @@ } } + private static IEnumerable ValidateCalculationInMultipleSections(ProbabilisticPipingCalculation calculation, PipingFailureMechanism failureMechanism) + { + int numberOfSections = failureMechanism + .Sections + .Count(section => calculation.IsSurfaceLineIntersectionWithReferenceLineInSection(Math2D.ConvertPointsToLineSegments(section.Points))); + + if (numberOfSections > 1) + { + yield return Resources.ProbabilisticPipingCalculationService_ValidateCalculationInMultipleSections_Cannot_determine_section_for_calculation; + } + } + private void NotifyProgress(string stepName, int currentStepNumber, int totalStepNumber) { OnProgressChanged?.Invoke(stepName, currentStepNumber, totalStepNumber); Index: Riskeer/Piping/src/Riskeer.Piping.Service/Properties/Resources.Designer.cs =================================================================== diff -u -r43ea9713b3b60bfb28ec520e5bf807634fffcbf1 -r2d896c48d4bb6a88b80b6bfb3146ee14737b2921 --- Riskeer/Piping/src/Riskeer.Piping.Service/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision 43ea9713b3b60bfb28ec520e5bf807634fffcbf1) +++ Riskeer/Piping/src/Riskeer.Piping.Service/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision 2d896c48d4bb6a88b80b6bfb3146ee14737b2921) @@ -262,31 +262,32 @@ } /// - /// Looks up a localized string similar to De verschuiving van het verzadigd volumetrisch gewicht van de deklaag moet groter zijn dan het volumetrisch gewicht van water.. + /// Looks up a localized string similar to Kan geen vak bepalen voor deze berekening: de locatie van de profielschematisatie bevindt zich op de scheiding van twee vakken.. /// - internal static string ProbabilisticPipingCalculationService_ValidateInput_SaturatedVolumicWeightCoverageLayer_shift_must_be_larger_than_WaterVolumetricWeight { + internal static string ProbabilisticPipingCalculationService_ValidateCalculationInMultipleSections_Cannot_determine_section_for_calculation { get { - return ResourceManager.GetString("ProbabilisticPipingCalculationService_ValidateInput_SaturatedVolumicWeightCoverag" + - "eLayer_shift_must_be_larger_than_WaterVolumetricWeight", resourceCulture); + return ResourceManager.GetString("ProbabilisticPipingCalculationService_ValidateCalculationInMultipleSections_Canno" + + "t_determine_section_for_calculation", resourceCulture); } } /// - /// Looks up a localized string similar to Kan geen vak bepalen voor deze berekening: de locatie van de profielschematisatie bevindt zich op de scheiding van twee vakken.. + /// Looks up a localized string similar to Er is geen vakindeling geïmporteerd.. /// - internal static string ProbabilisticPipingCalculationService_ValidateSections_Cannot_determine_section_for_calculation { + internal static string ProbabilisticPipingCalculationService_ValidateFailureMechanismHasSections_No_sections_imported { get { - return ResourceManager.GetString("ProbabilisticPipingCalculationService_ValidateSections_Cannot_determine_section_f" + - "or_calculation", resourceCulture); + return ResourceManager.GetString("ProbabilisticPipingCalculationService_ValidateFailureMechanismHasSections_No_sect" + + "ions_imported", resourceCulture); } } /// - /// Looks up a localized string similar to Er is geen vakindeling geïmporteerd.. + /// Looks up a localized string similar to De verschuiving van het verzadigd volumetrisch gewicht van de deklaag moet groter zijn dan het volumetrisch gewicht van water.. /// - internal static string ProbabilisticPipingCalculationService_ValidateSections_No_sections_imported { + internal static string ProbabilisticPipingCalculationService_ValidateInput_SaturatedVolumicWeightCoverageLayer_shift_must_be_larger_than_WaterVolumetricWeight { get { - return ResourceManager.GetString("ProbabilisticPipingCalculationService_ValidateSections_No_sections_imported", resourceCulture); + return ResourceManager.GetString("ProbabilisticPipingCalculationService_ValidateInput_SaturatedVolumicWeightCoverag" + + "eLayer_shift_must_be_larger_than_WaterVolumetricWeight", resourceCulture); } } Index: Riskeer/Piping/src/Riskeer.Piping.Service/Properties/Resources.resx =================================================================== diff -u -r43ea9713b3b60bfb28ec520e5bf807634fffcbf1 -r2d896c48d4bb6a88b80b6bfb3146ee14737b2921 --- Riskeer/Piping/src/Riskeer.Piping.Service/Properties/Resources.resx (.../Resources.resx) (revision 43ea9713b3b60bfb28ec520e5bf807634fffcbf1) +++ Riskeer/Piping/src/Riskeer.Piping.Service/Properties/Resources.resx (.../Resources.resx) (revision 2d896c48d4bb6a88b80b6bfb3146ee14737b2921) @@ -187,10 +187,10 @@ vak - + Er is geen vakindeling geïmporteerd. - + Kan geen vak bepalen voor deze berekening: de locatie van de profielschematisatie bevindt zich op de scheiding van twee vakken. \ No newline at end of file