Index: DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/DamEngineIo/FillDamUiFromXmlInput.cs =================================================================== diff -u -r1571 -r1625 --- DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/DamEngineIo/FillDamUiFromXmlInput.cs (.../FillDamUiFromXmlInput.cs) (revision 1571) +++ DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/DamEngineIo/FillDamUiFromXmlInput.cs (.../FillDamUiFromXmlInput.cs) (revision 1625) @@ -22,6 +22,7 @@ using System; using System.Collections.Generic; using System.Linq; +using Deltares.Dam.Data.Sensors; using Deltares.DamEngine.Io.XmlInput; using Deltares.Geotechnics; using Deltares.Geotechnics.Soils; @@ -74,9 +75,67 @@ damProjectData.InputTimeSerieCollection = new TimeSerieCollection(); TransferInputTimeSeries(input.OperationalInputTimeSeries, damProjectData.InputTimeSerieCollection); } + if (input.SensorData != null) + { + damProjectData.SensorData = new SensorData(); + TransferSensorData(input.SensorData, damProjectData.SensorData, dike.Locations); + } return damProjectData; } + private static void TransferSensorData(InputSensorData inputSensorData, SensorData sensorData, IList locations) + { + // Transfer sensors + foreach (var inputSensor in inputSensorData.Sensors) + { + var plLineMappings = new PLLineType[inputSensor.PlLineMapping.Length]; + int plLineMappingIndex = 0; + foreach (var plLineMapping in inputSensor.PlLineMapping) + { + plLineMappings[plLineMappingIndex] = ConversionHelper.ConvertToPlLineType(plLineMapping.PLineType); + plLineMappingIndex++; + } + sensorData.Sensors.Add(new Sensors.Sensor() + { + ID = inputSensor.Id, + RelativeLocation = inputSensor.RelativeLocation, + Type = ConversionHelper.ConvertToSensorType(inputSensor.SensorType), + PLLineMappings = plLineMappings + }); + } + + // Transfer sensorgroups + foreach (var inputSensorGroup in inputSensorData.SensorGroups) + { + var sensorGroup = new Data.Sensors.Group(); + sensorGroup.ID = inputSensorGroup.Id; + foreach (var sensorId in inputSensorGroup.SensorIds) + { + var sensor = sensorData.Sensors.First(s => s.ID.Equals(sensorId.SensorId)); + sensorGroup.Add(sensor); + } + sensorData.SensorGroups.Add(sensorGroup); + } + + // Transfer sensorlocations + foreach (var inputSensorLocation in inputSensorData.SensorLocations) + { + var sensorLocation = new Data.Sensors.SensorLocation(); + sensorLocation.Location = locations.First(l => l.Name.Equals(inputSensorLocation.LocationId)); + sensorLocation.Location.SensorData = sensorLocation; + sensorLocation.Group = sensorData.SensorGroups.First(sg => sg.ID.Equals(inputSensorLocation.GroupId)); + sensorLocation.SourceTypePl1PlLineOffsetBelowDikeTopAtPolder = ConversionHelper.ConvertToDataSourceTypeSensors(inputSensorLocation.SourceTypePl1PlLineOffsetBelowDikeTopAtPolder); + sensorLocation.SourceTypePl1PlLineOffsetBelowDikeToeAtPolder = ConversionHelper.ConvertToDataSourceTypeSensors(inputSensorLocation.SourceTypePl1PlLineOffsetBelowDikeToeAtPolder); + sensorLocation.SourceTypePl1PlLineOffsetBelowDikeTopAtRiver = ConversionHelper.ConvertToDataSourceTypeSensors(inputSensorLocation.SourceTypePl1PlLineOffsetBelowDikeTopAtRiver); + sensorLocation.SourceTypePl1PlLineOffsetBelowShoulderBaseInside = ConversionHelper.ConvertToDataSourceTypeSensors(inputSensorLocation.SourceTypePl1PlLineOffsetBelowShoulderBaseInside); + sensorLocation.SourceTypePl1WaterLevelAtPolder = ConversionHelper.ConvertToDataSourceTypeSensors(inputSensorLocation.SourceTypePl1WaterLevelAtPolder); + sensorLocation.SourceTypePl1WaterLevelAtRiver = ConversionHelper.ConvertToDataSourceTypeSensors(inputSensorLocation.SourceTypePl1WaterLevelAtRiver); + sensorLocation.SourceTypePl3 = ConversionHelper.ConvertToDataSourceTypeSensors(inputSensorLocation.SourceTypePl3); + sensorLocation.SourceTypePl4 = ConversionHelper.ConvertToDataSourceTypeSensors(inputSensorLocation.SourceTypePl4); + sensorData.SensorLocations.Add(sensorLocation); + } + } + private static void TransferInputTimeSeries(DamEngine.Io.XmlInput.TimeSerie[] inputOperationalInputTimeSeries, TimeSerieCollection timeSerieCollection) { foreach (var inputTimeSerie in inputOperationalInputTimeSeries)