Index: DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/DamEngineIo/FillXmlInputFromDamUi.cs =================================================================== diff -u -r3899 -r4055 --- DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/DamEngineIo/FillXmlInputFromDamUi.cs (.../FillXmlInputFromDamUi.cs) (revision 3899) +++ DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/DamEngineIo/FillXmlInputFromDamUi.cs (.../FillXmlInputFromDamUi.cs) (revision 4055) @@ -1,18 +1,18 @@ // Copyright (C) Stichting Deltares 2023. All rights reserved. // -// This file is part of the application DAM - UI. +// This file is part of the application DAM - Live. // -// DAM - UI is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by +// DAM - Live is free software: you can redistribute it and/or modify +// it under the terms of the GNU Affero General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. +// GNU Affero General Public License for more details. // -// You should have received a copy of the GNU General Public License +// You should have received a copy of the GNU Affero General Public License // along with this program. If not, see . // // All names, logos, and references to "Deltares" are registered trademarks of @@ -32,7 +32,10 @@ using Deltares.Geotechnics.Soils; using Deltares.Geotechnics.SurfaceLines; using Deltares.Standard.Logging; +using Sensor = Deltares.Dam.Data.Sensors.Sensor; +using SensorLocation = Deltares.DamEngine.Io.XmlInput.SensorLocation; using Soil = Deltares.Geotechnics.Soils.Soil; +using SoilProfile1D = Deltares.Geotechnics.Soils.SoilProfile1D; using SoilProfile2D = Deltares.DamEngine.Io.XmlInput.SoilProfile2D; using SurfaceLine = Deltares.DamEngine.Io.XmlInput.SurfaceLine; @@ -56,16 +59,16 @@ // Process locations string soilProfileDirectory = Path.Combine(damProjectData.ProjectPath, dike.MapForSoilGeometries2D); var soilProfiles2DToSerialize = new List(); - var filteredJobs = FilterLocationJobsWithSoilProfiles(damProjectData.SelectedLocationJobs, - soilProfileDirectory, - dike.SoilList, - soilProfiles2DToSerialize) + List filteredJobs = FilterLocationJobsWithSoilProfiles(damProjectData.SelectedLocationJobs, + soilProfileDirectory, + dike.SoilList, + soilProfiles2DToSerialize) .ToList(); - var filteredLocations = filteredJobs.Select(loc => loc.Location).ToList(); + List filteredLocations = filteredJobs.Select(loc => loc.Location).ToList(); ValidateDamProjectData(damProjectData, filteredLocations); - Input input = new Input(); + var input = new Input(); input.ProjectPath = damProjectData.ProjectPath; input.CalculationMap = damProjectData.CalculationMap; input.MaxCalculationCoresSpecified = true; @@ -78,15 +81,16 @@ TransferLocations(filteredLocations, input.Locations); // Process surfacelines - List localSurfaceLines = new List(); - for (int i = 0; i < filteredLocations.Count; i++) + var localSurfaceLines = new List(); + for (var i = 0; i < filteredLocations.Count; i++) { - var crtSurfaceLine = filteredLocations[i].LocalXZSurfaceLine2; + SurfaceLine2 crtSurfaceLine = filteredLocations[i].LocalXZSurfaceLine2; if (!localSurfaceLines.Any(sl => sl.Name.Equals(crtSurfaceLine.Name))) { localSurfaceLines.Add(crtSurfaceLine); } } + input.SurfaceLines = new SurfaceLine[localSurfaceLines.Count]; TransferSurfaceLines(localSurfaceLines, input.SurfaceLines); @@ -96,11 +100,11 @@ TransferAquiferSoils(dike.SoilList.AquiferDictionary, input); // Process soilprofiles - var localSegments = EnsureInputLocationsSegmentsAreInSegments(damProjectData.WaterBoard.Segments, filteredLocations); + IList localSegments = EnsureInputLocationsSegmentsAreInSegments(damProjectData.WaterBoard.Segments, filteredLocations); // Fill 1D profiles in case of DamClassicStability if (dike.SoilProfiles != null) { - var profilesCount = dike.SoilProfiles.Count; + int profilesCount = dike.SoilProfiles.Count; input.SoilProfiles1D = new DamEngine.Io.XmlInput.SoilProfile1D[profilesCount]; TransferSoilProfiles1D(dike.SoilProfiles, input.SoilProfiles1D); } @@ -125,50 +129,56 @@ input.SensorData = new InputSensorData(); TransferSensorData(damProjectData.SensorData, input.SensorData); } + return input; } private static IList EnsureInputLocationsSegmentsAreInSegments(IList segments, List localLocations) { var localSegments = new List(); localSegments.AddRange(segments); - foreach (var localLocation in localLocations) + foreach (Location localLocation in localLocations) { - var seg = localSegments.FirstOrDefault(x => x.Name == localLocation.Segment.Name); + Segment seg = localSegments.FirstOrDefault(x => x.Name == localLocation.Segment.Name); if (seg == null) { localSegments.Add(localLocation.Segment); } } + return localSegments; } private static void TransferSensorData(SensorData sensorData, InputSensorData inputSensorData) { // Transfer sensorgroups - int sensorGroupIndex = 0; - inputSensorData.SensorGroups = new DamEngine.Io.XmlInput.SensorGroup[sensorData.SensorGroups.Count]; - foreach (var sensorGroup in sensorData.SensorGroups) + var sensorGroupIndex = 0; + inputSensorData.SensorGroups = new SensorGroup[sensorData.SensorGroups.Count]; + foreach (Group sensorGroup in sensorData.SensorGroups) { - var inputSensorGroup = new DamEngine.Io.XmlInput.SensorGroup(); + var inputSensorGroup = new SensorGroup(); inputSensorGroup.SensorIds = new SensorGroupSensorIds[sensorGroup.SensorCount]; inputSensorGroup.Id = sensorGroup.ID; - int sensorIdIndex = 0; - foreach (var sensor in sensorGroup.SensorArray) + var sensorIdIndex = 0; + foreach (Sensor sensor in sensorGroup.SensorArray) { - inputSensorGroup.SensorIds[sensorIdIndex] = new SensorGroupSensorIds() { SensorId = sensor.ID }; + inputSensorGroup.SensorIds[sensorIdIndex] = new SensorGroupSensorIds + { + SensorId = sensor.ID + }; sensorIdIndex++; } + inputSensorData.SensorGroups[sensorGroupIndex] = inputSensorGroup; sensorGroupIndex++; } // Transfer sensorlocations - int senserLocationIndex = 0; - inputSensorData.SensorLocations = new DamEngine.Io.XmlInput.SensorLocation[sensorData.SensorLocations.Count]; - foreach (var sensorLocation in sensorData.SensorLocations) + var senserLocationIndex = 0; + inputSensorData.SensorLocations = new SensorLocation[sensorData.SensorLocations.Count]; + foreach (Sensors.SensorLocation sensorLocation in sensorData.SensorLocations) { - var inputSensorLocation = new DamEngine.Io.XmlInput.SensorLocation(); + var inputSensorLocation = new SensorLocation(); inputSensorLocation.GroupId = sensorLocation.GroupID; inputSensorLocation.LocationId = sensorLocation.LocationName; inputSensorLocation.SourceTypePl1PlLineOffsetBelowDikeToeAtPolder = ConversionHelper.ConvertToInputDataSourceTypeSensors(sensorLocation.SourceTypePl1PlLineOffsetBelowDikeToeAtPolder); @@ -185,30 +195,34 @@ // Transfer sensors inputSensorData.Sensors = new DamEngine.Io.XmlInput.Sensor[sensorData.Sensors.Count]; - int sensorIndex = 0; - foreach (var sensor in sensorData.Sensors) + var sensorIndex = 0; + foreach (Sensor sensor in sensorData.Sensors) { var inputSensor = new DamEngine.Io.XmlInput.Sensor(); inputSensor.Id = sensor.ID; inputSensor.Name = sensor.Name; inputSensor.RelativeLocation = sensor.RelativeLocation; inputSensor.SensorType = ConversionHelper.ConvertToInputSensorType(sensor.Type); inputSensor.PlLineMapping = new SensorPlLineMapping[sensor.PLLineMappings.Length]; - int mappingIndex = 0; - foreach (var plLineMapping in sensor.PLLineMappings) + var mappingIndex = 0; + foreach (PLLineType plLineMapping in sensor.PLLineMappings) { - inputSensor.PlLineMapping[mappingIndex] = new SensorPlLineMapping() { PLineType = ConversionHelper.ConvertToInputPlLineType(plLineMapping) }; + inputSensor.PlLineMapping[mappingIndex] = new SensorPlLineMapping + { + PLineType = ConversionHelper.ConvertToInputPlLineType(plLineMapping) + }; mappingIndex++; } + inputSensorData.Sensors[sensorIndex] = inputSensor; sensorIndex++; } } private static void TransferInputTimeSeries(TimeSerieCollection inputTimeSerieCollection, DamEngine.Io.XmlInput.TimeSerie[] operationalInputTimeSeries) { - int timeSerieIndex = 0; - foreach (var timeSerie in inputTimeSerieCollection.Series) + var timeSerieIndex = 0; + foreach (TimeSerie timeSerie in inputTimeSerieCollection.Series) { var inputTimeSerie = new DamEngine.Io.XmlInput.TimeSerie(); inputTimeSerie.Entries = new TimeSerieEntries(); @@ -233,20 +247,21 @@ inputTimeSerie.TimeStep.MultiplierSpecified1 = timeSerie.TimeStep.MultiplierSpecified; inputTimeSerie.TimeStep.DividerSpecified1 = timeSerie.TimeStep.DividerSpecified; inputTimeSerie.TimeStep.TimeStepUnit = ConversionHelper.ConvertToInputTimeStepUnit(timeSerie.TimeStep.Unit); - int timeSerieEntryIndex = 0; - foreach (var timestepEntry in timeSerie.Entries) + var timeSerieEntryIndex = 0; + foreach (TimeSerieEntry timestepEntry in timeSerie.Entries) { TimeSerieEntriesTimeSerieEntryStochastValue stochastValue = null; if (timestepEntry.StochastValue != null) { - stochastValue = new TimeSerieEntriesTimeSerieEntryStochastValue() + stochastValue = new TimeSerieEntriesTimeSerieEntryStochastValue { Distribution = timestepEntry.StochastValue.Distribution, Mean = timestepEntry.StochastValue.Mean, StandardDeviation = timestepEntry.StochastValue.StandardDeviation }; } - TimeSerieEntriesTimeSerieEntry timeStep = new TimeSerieEntriesTimeSerieEntry() + + var timeStep = new TimeSerieEntriesTimeSerieEntry { DateTime = timestepEntry.DateTime, Value = timestepEntry.Value, @@ -257,8 +272,8 @@ }; inputTimeSerie.Entries.TimeSerieEntry[timeSerieEntryIndex] = timeStep; timeSerieEntryIndex++; - } + operationalInputTimeSeries[timeSerieIndex] = inputTimeSerie; timeSerieIndex++; } @@ -270,17 +285,22 @@ if (aquiferDictionary != null && aquiferDictionary.Count > 0) { aquiferSoils = new InputAquiferSoil[aquiferDictionary.Count]; - int soilIndex = 0; + var soilIndex = 0; foreach (KeyValuePair keyValuePair in aquiferDictionary) { - aquiferSoils[soilIndex] = new InputAquiferSoil() { Soilname = keyValuePair.Key.Name, IsAquifer = keyValuePair.Value }; + aquiferSoils[soilIndex] = new InputAquiferSoil + { + Soilname = keyValuePair.Key.Name, + IsAquifer = keyValuePair.Value + }; soilIndex++; } } else { aquiferSoils = null; } + input.AquiferSoils = aquiferSoils; } @@ -316,12 +336,12 @@ { if (damProjectData.DamProjectCalculationSpecification != null && damProjectData.DamProjectCalculationSpecification.CurrentSpecification != null) { - var curSpec = damProjectData.DamProjectCalculationSpecification.CurrentSpecification; + DamFailureMechanismeCalculationSpecification curSpec = damProjectData.DamProjectCalculationSpecification.CurrentSpecification; if (curSpec.FailureMechanismeParamatersMStab != null && curSpec.FailureMechanismeParamatersMStab.MStabParameters != null) { input.StabilityParameters = new StabilityParameters(); input.StabilityParameters.SearchMethod = ConversionHelper.ConvertToInputSearchMethod(curSpec.FailureMechanismeParamatersMStab.MStabParameters.SearchMethod); - var slipCircleDefinition = curSpec.FailureMechanismeParamatersMStab.MStabParameters.SlipCircleDefinition; + SlipCircleDefinition slipCircleDefinition = curSpec.FailureMechanismeParamatersMStab.MStabParameters.SlipCircleDefinition; if (slipCircleDefinition != null) { input.StabilityParameters.GridDetermination = ConversionHelper.ConvertToInputGridDetermination(slipCircleDefinition.GridSizeDetermination); @@ -362,21 +382,22 @@ } } - private static void ValidateDamProjectData(DamProjectData damProjectData, List selectedLocations) + private static void ValidateDamProjectData(DamProjectData damProjectData, List selectedLocations) { if (damProjectData.WaterBoard.Dikes == null || damProjectData.WaterBoard.Dikes.Count != 1) { throw new ArgumentException(Resources.DikeShouldContainExactly1Dike); } - var dike = damProjectData.WaterBoard.Dikes[0]; + + Dike dike = damProjectData.WaterBoard.Dikes[0]; ThrowHelper.ThrowIfArgumentNull(dike.Locations, nameof(dike.Locations), StringResourceNames.NoLocationsDefined); // Following situation should never occur in the UI. Tested because of the check on RiverLevelLow in the code below - var currentSpecification = damProjectData.DamProjectCalculationSpecification.CurrentSpecification; + DamFailureMechanismeCalculationSpecification currentSpecification = damProjectData.DamProjectCalculationSpecification.CurrentSpecification; ThrowHelper.ThrowIfArgumentNull(currentSpecification, nameof(currentSpecification), StringResourceNames.NoCalculationTypeSpecified); foreach (Location location in selectedLocations) { ThrowHelper.ThrowIfArgumentNull(location.Scenarios, nameof(location.Scenarios), StringResourceNames.NoScenariosDefinedInLocation); - foreach (var scenario in location.Scenarios) + foreach (Scenario scenario in location.Scenarios) { string errorMessage = string.Format(Resources.NoRiverLevel, location.Name, scenario.LocationScenarioID); ThrowHelper.ThrowIfArgumentNull(scenario.RiverLevel, nameof(scenario.RiverLevel), errorMessage); @@ -390,50 +411,56 @@ } ThrowHelper.ThrowIfArgumentNull(dike.SurfaceLines2, nameof(dike.SurfaceLines2), StringResourceNames.NoSurfaceLines); - foreach (var surfaceLine in dike.SurfaceLines2) + foreach (SurfaceLine2 surfaceLine in dike.SurfaceLines2) { if ((surfaceLine.CharacteristicPoints == null) || (surfaceLine.CharacteristicPoints.Count < 1)) { throw new ArgumentException(string.Format(Resources.SurfaceLineHasNoCharacteristicPoints, surfaceLine.Name)); } + if ((surfaceLine.Geometry == null) || (surfaceLine.Geometry.Count < 2)) { throw new ArgumentException(string.Format(Resources.SurfaceLineHasNoPoints, surfaceLine.Name)); } } + ThrowHelper.ThrowIfArgumentNull(dike.SoilList, nameof(dike.SoilList), StringResourceNames.NoSoilsDefinedInProject); ThrowHelper.ThrowIfArgumentNull(dike.SoilList.Soils, nameof(dike.SoilList.Soils), StringResourceNames.NoSoilsDefinedInProject); ThrowHelper.ThrowIfArgumentNull(dike.SoilProfiles, nameof(dike.SoilProfiles), StringResourceNames.NoSoilprofiles1DDefinedInProject); // Check for invalid Id names - foreach (var location in selectedLocations) + foreach (Location location in selectedLocations) { if (!IdValidator.IsCorrectName(location.Name)) { throw new IdValidatorException(string.Format(Resources.LocationInvalidName, location.Name)); } } - foreach (var segment in damProjectData.WaterBoard.Segments) + + foreach (Segment segment in damProjectData.WaterBoard.Segments) { if (!IdValidator.IsCorrectName(segment.Name)) { throw new IdValidatorException(string.Format(Resources.SegmentInvalidName, segment.Name)); } } - foreach (var surfaceLine2 in dike.SurfaceLines2) + + foreach (SurfaceLine2 surfaceLine2 in dike.SurfaceLines2) { if (!IdValidator.IsCorrectName(surfaceLine2.Name)) { throw new IdValidatorException(string.Format(Resources.SurfaceLineInvalidName, surfaceLine2.Name)); } } - foreach (var soilProfile in dike.SoilProfiles) + + foreach (SoilProfile1D soilProfile in dike.SoilProfiles) { if (!IdValidator.IsCorrectName(soilProfile.Name)) { throw new IdValidatorException(string.Format(Resources.SoilProfileInvalidName, soilProfile.Name)); } } - foreach (var soil in dike.SoilList.Soils) + + foreach (Soil soil in dike.SoilList.Soils) { if (!IdValidator.IsCorrectName(soil.Name)) { @@ -444,9 +471,9 @@ private static void TransferSoils(List soils, DamEngine.Io.XmlInput.Soil[] inputSoils) { - for (int i = 0; i < soils.Count; i++) + for (var i = 0; i < soils.Count; i++) { - var soil = soils[i]; + Soil soil = soils[i]; var inputSoil = new DamEngine.Io.XmlInput.Soil(); inputSoil.Name = soil.Name; inputSoil.AbovePhreaticLevelSpecified = !Double.IsNaN(soil.AbovePhreaticLevel); @@ -491,31 +518,33 @@ private static void TransferSurfaceLines(IList dikeSurfaceLines, SurfaceLine[] inputSurfaceLines) { - for (int i = 0; i < dikeSurfaceLines.Count; i++) + for (var i = 0; i < dikeSurfaceLines.Count; i++) { - var surfaceLine = dikeSurfaceLines[i]; + SurfaceLine2 surfaceLine = dikeSurfaceLines[i]; var inputSurfaceLine = new SurfaceLine(); inputSurfaceLine.Name = surfaceLine.Name; inputSurfaceLine.Points = new SurfaceLinePoint[surfaceLine.CharacteristicPoints.Count]; - for (int j = 0; j < surfaceLine.CharacteristicPoints.Count; j++) + for (var j = 0; j < surfaceLine.CharacteristicPoints.Count; j++) { - var characteristicPoint = surfaceLine.CharacteristicPoints[j]; - var inputPoint = new SurfaceLinePoint() + CharacteristicPoint characteristicPoint = surfaceLine.CharacteristicPoints[j]; + var inputPoint = new SurfaceLinePoint { PointType = ConversionHelper.ConvertToInputPointType(characteristicPoint.CharacteristicPointType), X = characteristicPoint.X, Z = characteristicPoint.Z }; inputSurfaceLine.Points[j] = inputPoint; } + inputSurfaceLines[i] = inputSurfaceLine; } } + private static void TransferLocations(IList dikeLocations, DamEngine.Io.XmlInput.Location[] inputLocations) { - for (int i = 0; i < dikeLocations.Count; i++) + for (var i = 0; i < dikeLocations.Count; i++) { - var location = dikeLocations[i]; + Location location = dikeLocations[i]; var inputLocation = new DamEngine.Io.XmlInput.Location(); inputLocation.Name = location.Name; inputLocation.DistanceToEntryPoint = location.DistanceToEntryPoint; @@ -536,9 +565,9 @@ inputLocation.WaternetOptions = waternetOptions; inputLocation.DesignScenarios = new LocationDesignScenario[location.Scenarios.Count]; - for (int j = 0; j < location.Scenarios.Count; j++) + for (var j = 0; j < location.Scenarios.Count; j++) { - var designScenario = location.Scenarios[j]; + Scenario designScenario = location.Scenarios[j]; var inputDesignScenario = new LocationDesignScenario(); inputDesignScenario.RiverLevel = designScenario.RiverLevel.Value; @@ -570,6 +599,7 @@ inputLocation.DesignScenarios[j] = inputDesignScenario; } + inputLocation.DikeEmbankmentMaterial = location.DikeEmbankmentMaterial; inputLocation.StabilityOptions = new LocationStabilityOptions { @@ -625,12 +655,12 @@ } } - private static void TransferSoilProfiles1D(IList dikeSoilProfiles, DamEngine.Io.XmlInput.SoilProfile1D[] inputSoilProfiles1D) + private static void TransferSoilProfiles1D(IList dikeSoilProfiles, DamEngine.Io.XmlInput.SoilProfile1D[] inputSoilProfiles1D) { - var profilesCount = dikeSoilProfiles.Count; - for (int i = 0; i < profilesCount; i++) + int profilesCount = dikeSoilProfiles.Count; + for (var i = 0; i < profilesCount; i++) { - var soilProfile1D = dikeSoilProfiles[i]; + SoilProfile1D soilProfile1D = dikeSoilProfiles[i]; var inputSoilProfile1D = new DamEngine.Io.XmlInput.SoilProfile1D { Name = soilProfile1D.Name, @@ -642,11 +672,11 @@ } } - private static void AddLayers1D(Deltares.Geotechnics.Soils.SoilProfile1D soilProfile1D, DamEngine.Io.XmlInput.SoilProfile1D inputSoilProfile1D) + private static void AddLayers1D(SoilProfile1D soilProfile1D, DamEngine.Io.XmlInput.SoilProfile1D inputSoilProfile1D) { - for (int i = 0; i < soilProfile1D.LayerCount; i++) + for (var i = 0; i < soilProfile1D.LayerCount; i++) { - var layer = soilProfile1D.Layers[i]; + SoilLayer1D layer = soilProfile1D.Layers[i]; var inputLayer = new SoilProfile1DLayer1D { Name = "L" + i, @@ -659,11 +689,12 @@ inputSoilProfile1D.Layers1D[i] = inputLayer; } } + private static void TransferSegments(IList segments, DamEngine.Io.XmlInput.Segment[] inputSegments) { - for (int i = 0; i < segments.Count; i++) + for (var i = 0; i < segments.Count; i++) { - var segment = segments[i]; + Segment segment = segments[i]; var inputSegment = new DamEngine.Io.XmlInput.Segment { Name = segment.Name @@ -677,11 +708,11 @@ { if (segment.SoilProfileProbabilities != null) { - var probabilityCount = segment.SoilProfileProbabilities.Count; + int probabilityCount = segment.SoilProfileProbabilities.Count; inputSegment.SoilGeometryProbability = new SegmentSoilGeometryProbability[probabilityCount]; - for (int i = 0; i < probabilityCount; i++) + for (var i = 0; i < probabilityCount; i++) { - var soilGeometryProbability = segment.SoilProfileProbabilities[i]; + SoilGeometryProbability soilGeometryProbability = segment.SoilProfileProbabilities[i]; var inputSoilGeometryProbability = new SegmentSoilGeometryProbability(); inputSoilGeometryProbability.Probability = soilGeometryProbability.Probability; if (soilGeometryProbability.SegmentFailureMechanismType.HasValue) @@ -703,15 +734,14 @@ default: inputSoilGeometryProbability.SoilProfileName = soilGeometryProbability.SoilGeometry2DName; break; - } // When the soil profile type is of type sti, it needs to be converted to SoilProfile type 2D for the DamEngine input // This modification is necessary because the soilprofile 2D is now loaded at the DAM UI side and not at the DamEngine // However, this does cause a mismatch of the SoilProfileType as per default a 2D is set as a sti on the DAM UI inputSoilGeometryProbability.SoilProfileType = soilGeometryProbability.SoilProfileType == SoilProfileType.SoilGeometryStiFile - ? ConversionHelper.ConvertToInputSoilProfileType(SoilProfileType.SoilProfile2D) - : ConversionHelper.ConvertToInputSoilProfileType(soilGeometryProbability.SoilProfileType); + ? ConversionHelper.ConvertToInputSoilProfileType(SoilProfileType.SoilProfile2D) + : ConversionHelper.ConvertToInputSoilProfileType(soilGeometryProbability.SoilProfileType); inputSegment.SoilGeometryProbability[i] = inputSoilGeometryProbability; } } @@ -726,10 +756,10 @@ /// The collection of that is contained /// by the . /// A collection of on which calculations can be performed. - private static IEnumerable FilterLocationJobsWithSoilProfiles(IEnumerable locationJobs, - string soilProfileDirectory, - SoilList availableSoils, - ICollection containedSoilProfiles) + private static IEnumerable FilterLocationJobsWithSoilProfiles(IEnumerable locationJobs, + string soilProfileDirectory, + SoilList availableSoils, + ICollection containedSoilProfiles) { var validJobs = new List(); var uniqueSoilProfileNames = new HashSet(); @@ -765,17 +795,17 @@ { foreach (Scenario scenario in location.Scenarios) { - string message = $"Location '{location.Name}', design scenario '{scenario.LocationScenarioID}': The calculation failed with error message: '{errorMessage}'"; + var message = $"Location '{location.Name}', design scenario '{scenario.LocationScenarioID}': The calculation failed with error message: '{errorMessage}'"; LogManager.Messages.Add(new LogMessage(LogMessageType.Error, null, message)); } } else { - string message = $"Location '{location.Name}': The calculation failed with error message: '{errorMessage}'"; + var message = $"Location '{location.Name}': The calculation failed with error message: '{errorMessage}'"; LogManager.Messages.Add(new LogMessage(LogMessageType.Error, null, message)); } } - + /// /// Gets the soil profiles based on the input arguments. /// @@ -787,8 +817,8 @@ /// Thrown when the soil profiles could not be successfully converted. private static IEnumerable GetSoilProfiles(string soilProfileDirectory, Segment segment, SoilList soils) { - var importedSoilProfiles = SoilProfile2DImporter.Import(soilProfileDirectory, segment, soils); + IEnumerable importedSoilProfiles = SoilProfile2DImporter.Import(soilProfileDirectory, segment, soils); return importedSoilProfiles.Select(XmlSoilProfile2DConverter.Convert).ToArray(); } } -} +} \ No newline at end of file