Index: Ringtoets/Piping/src/Ringtoets.Piping.IO/Importers/PipingConfigurationImporter.cs =================================================================== diff -u -re03950c62ccfad90eefe8076d668767f69c90a8e -r234614cab83ea84164fa9ffaa99adb029dd6a1fb --- Ringtoets/Piping/src/Ringtoets.Piping.IO/Importers/PipingConfigurationImporter.cs (.../PipingConfigurationImporter.cs) (revision e03950c62ccfad90eefe8076d668767f69c90a8e) +++ Ringtoets/Piping/src/Ringtoets.Piping.IO/Importers/PipingConfigurationImporter.cs (.../PipingConfigurationImporter.cs) (revision 234614cab83ea84164fa9ffaa99adb029dd6a1fb) @@ -118,12 +118,23 @@ return true; } - private void AddItemsToModel(IEnumerable validCalculationItems) + private ReadResult ReadConfiguration() { - foreach (ICalculationBase validCalculationItem in validCalculationItems) + try { - ImportTarget.Children.Add(validCalculationItem); + return new ReadResult(false) + { + Items = new PipingConfigurationReader(FilePath).Read().ToList() + }; } + catch (Exception exception) when (exception is ArgumentException + || exception is CriticalFileReadException) + { + string errorMessage = string.Format(Resources.PipingConfigurationImporter_HandleCriticalFileReadError_Error_0_no_configuration_imported, + exception.Message); + log.Error(errorMessage, exception); + return new ReadResult(true); + } } private ICalculationBase ProcessReadItem(IReadPipingCalculationItem readItem) @@ -172,6 +183,7 @@ ReadSurfaceLine(readCalculation, pipingCalculation); ReadEntryExitPoint(readCalculation, pipingCalculation); ReadStochasticSoilModel(readCalculation, pipingCalculation); + ReadStochasticSoilProfile(readCalculation, pipingCalculation); ReadStochasts(readCalculation, pipingCalculation); } catch (Exception e) when (e is CriticalFileValidationException || e is ArgumentOutOfRangeException) @@ -197,17 +209,16 @@ { if (readCalculation.HydraulicBoundaryLocation != null) { - HydraulicBoundaryLocation location = hydraulicBoundaryLocations.FirstOrDefault(l => l.Name == readCalculation.HydraulicBoundaryLocation); + HydraulicBoundaryLocation location = hydraulicBoundaryLocations + .FirstOrDefault(l => l.Name == readCalculation.HydraulicBoundaryLocation); - if (location != null) + if (location == null) { - pipingCalculation.InputParameters.HydraulicBoundaryLocation = location; - } - else - { throw new CriticalFileValidationException(string.Format(Resources.PipingConfigurationImporter_ReadHydraulicBoundaryLocation_Hydraulic_boundary_location_0_does_not_exist, readCalculation.HydraulicBoundaryLocation)); } + + pipingCalculation.InputParameters.HydraulicBoundaryLocation = location; } else if (readCalculation.AssessmentLevel.HasValue) { @@ -228,17 +239,15 @@ if (readCalculation.SurfaceLine != null) { RingtoetsPipingSurfaceLine surfaceLine = failureMechanism.SurfaceLines - .FirstOrDefault(sl => sl.Name == readCalculation.SurfaceLine); + .FirstOrDefault(sl => sl.Name == readCalculation.SurfaceLine); - if (surfaceLine != null) + if (surfaceLine == null) { - pipingCalculation.InputParameters.SurfaceLine = surfaceLine; - } - else - { throw new CriticalFileValidationException(string.Format(Resources.PipingConfigurationImporter_ReadSurfaceLine_SurfaceLine_0_does_not_exist, readCalculation.SurfaceLine)); } + + pipingCalculation.InputParameters.SurfaceLine = surfaceLine; } } @@ -281,29 +290,23 @@ if (readCalculation.StochasticSoilModel != null) { StochasticSoilModel soilModel = failureMechanism.StochasticSoilModels - .FirstOrDefault(ssm => ssm.Name == readCalculation.StochasticSoilModel); + .FirstOrDefault(ssm => ssm.Name == readCalculation.StochasticSoilModel); - if (soilModel != null) + if (soilModel == null) { - if (pipingCalculation.InputParameters.SurfaceLine != null) - { - if (!soilModel.IntersectsWithSurfaceLineGeometry(pipingCalculation.InputParameters.SurfaceLine)) - { - throw new CriticalFileValidationException(string.Format(Resources.PipingConfigurationImporter_ReadStochasticSoilModel_Stochastische_soil_model_0_does_not_intersect_with_surfaceLine_1, - readCalculation.StochasticSoilModel, - readCalculation.SurfaceLine)); - } - } - - pipingCalculation.InputParameters.StochasticSoilModel = soilModel; - - ReadStochasticSoilProfile(readCalculation, pipingCalculation, soilModel); - } - else - { throw new CriticalFileValidationException(string.Format(Resources.PipingConfigurationImporter_ReadStochasticSoilModel_Stochastische_soil_model_0_does_not_exist, readCalculation.StochasticSoilModel)); } + + if (pipingCalculation.InputParameters.SurfaceLine != null + && !soilModel.IntersectsWithSurfaceLineGeometry(pipingCalculation.InputParameters.SurfaceLine)) + { + throw new CriticalFileValidationException(string.Format(Resources.PipingConfigurationImporter_ReadStochasticSoilModel_Stochastische_soil_model_0_does_not_intersect_with_surfaceLine_1, + readCalculation.StochasticSoilModel, + readCalculation.SurfaceLine)); + } + + pipingCalculation.InputParameters.StochasticSoilModel = soilModel; } } @@ -312,27 +315,29 @@ /// /// The calculation read from the imported file. /// The calculation to configure. - /// The to get the soil profile from. /// Thrown when the /// has a set which is not available in the . private static void ReadStochasticSoilProfile(ReadPipingCalculation readCalculation, - PipingCalculationScenario pipingCalculation, - StochasticSoilModel soilModel) + PipingCalculationScenario pipingCalculation) { if (readCalculation.StochasticSoilProfile != null) { - StochasticSoilProfile soilProfile = soilModel.StochasticSoilProfiles - .FirstOrDefault(ssp => ssp.SoilProfile.Name == readCalculation.StochasticSoilProfile); - - if (soilProfile != null) + if (pipingCalculation.InputParameters.StochasticSoilModel == null) { - pipingCalculation.InputParameters.StochasticSoilProfile = soilProfile; + throw new CriticalFileValidationException(string.Format(Resources.PipingConfigurationImporter_ReadStochasticSoilProfile_No_soil_model_provided_for_soil_profile_with_name_0, + readCalculation.StochasticSoilProfile)); } - else + + StochasticSoilProfile soilProfile = pipingCalculation.InputParameters.StochasticSoilModel.StochasticSoilProfiles + .FirstOrDefault(ssp => ssp.SoilProfile.Name == readCalculation.StochasticSoilProfile); + + if (soilProfile == null) { throw new CriticalFileValidationException(string.Format(Resources.PipingConfigurationImporter_ReadStochasticSoilProfile_Stochastic_soil_profile_0_does_not_exist_within_soil_model_1, readCalculation.StochasticSoilProfile, readCalculation.StochasticSoilModel)); } + + pipingCalculation.InputParameters.StochasticSoilProfile = soilProfile; } } @@ -395,23 +400,12 @@ } } - private ReadResult ReadConfiguration() + private void AddItemsToModel(IEnumerable validCalculationItems) { - try + foreach (ICalculationBase validCalculationItem in validCalculationItems) { - return new ReadResult(false) - { - Items = new PipingConfigurationReader(FilePath).Read().ToList() - }; + ImportTarget.Children.Add(validCalculationItem); } - catch (Exception exception) when (exception is ArgumentException - || exception is CriticalFileReadException) - { - string errorMessage = string.Format(Resources.PipingConfigurationImporter_HandleCriticalFileReadError_Error_0_no_configuration_imported, - exception.Message); - log.Error(errorMessage, exception); - return new ReadResult(true); - } } } } \ No newline at end of file Index: Ringtoets/Piping/src/Ringtoets.Piping.IO/Properties/Resources.Designer.cs =================================================================== diff -u -re03950c62ccfad90eefe8076d668767f69c90a8e -r234614cab83ea84164fa9ffaa99adb029dd6a1fb --- Ringtoets/Piping/src/Ringtoets.Piping.IO/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision e03950c62ccfad90eefe8076d668767f69c90a8e) +++ Ringtoets/Piping/src/Ringtoets.Piping.IO/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision 234614cab83ea84164fa9ffaa99adb029dd6a1fb) @@ -289,6 +289,16 @@ } /// + /// Looks up a localized string similar to Er is geen ondergrondmodel opgegeven bij de ondergrondschematisatie '{0}'.. + /// + public static string PipingConfigurationImporter_ReadStochasticSoilProfile_No_soil_model_provided_for_soil_profile_with_name_0 { + get { + return ResourceManager.GetString("PipingConfigurationImporter_ReadStochasticSoilProfile_No_soil_model_provided_for_" + + "soil_profile_with_name_0", resourceCulture); + } + } + + /// /// Looks up a localized string similar to De ondergrondschematisatie '{0}' bestaat niet binnen het stochastische ondergrondmodel '{1}'.. /// public static string PipingConfigurationImporter_ReadStochasticSoilProfile_Stochastic_soil_profile_0_does_not_exist_within_soil_model_1 { Index: Ringtoets/Piping/src/Ringtoets.Piping.IO/Properties/Resources.resx =================================================================== diff -u -re03950c62ccfad90eefe8076d668767f69c90a8e -r234614cab83ea84164fa9ffaa99adb029dd6a1fb --- Ringtoets/Piping/src/Ringtoets.Piping.IO/Properties/Resources.resx (.../Resources.resx) (revision e03950c62ccfad90eefe8076d668767f69c90a8e) +++ Ringtoets/Piping/src/Ringtoets.Piping.IO/Properties/Resources.resx (.../Resources.resx) (revision 234614cab83ea84164fa9ffaa99adb029dd6a1fb) @@ -337,4 +337,7 @@ Een standaardafwijking van '{0}' is ongeldig voor stochast '{1}'. + + Er is geen ondergrondmodel opgegeven bij de ondergrondschematisatie '{0}'. + \ No newline at end of file