using System; using System.Collections.Generic; using System.Linq; using Deltares.Dam.Data; using Deltares.Dam.Data.Sensors; using Deltares.Standard; namespace Deltares.Dam.Application.Live { // TODO: this class is just passing its input to another class, see if this class can be removed from the design public class SensorModelRunner : ModelRunner { public override void Run() { var calcParams = CalculationParameters ?? new CalculationParameters(); calcParams.StabilityExePath = StabilityExePath; calcParams.WorkingPath = WorkingPath; calcParams.StabilityWorkingPath = StabilityWorkingPath; ReadUserSettingsSlipCircleDefinition(calcParams.MStabParameters.SlipCircleDefinition); List locations = ProjectData.Locations; if (!string.IsNullOrWhiteSpace(Filter)) { var parsedLocations = Filter.Split(new[] {','}, StringSplitOptions.RemoveEmptyEntries); locations = ProjectData.Locations.Where(l => parsedLocations.All(a => l.Name == a.Trim())).ToList(); if (locations.Count == 0) { Logger.LogWarning("No matching locations found with the specified filter"); } } var processor = new SensorTimeSeriesProcessor { CalculationParameters = calcParams, InputTimeSeriesCollection = InputTimeSeriesCollection, OutputTimeSeriesCollection = OutputTimeSeriesCollection, Locations = locations }; processor.Initialize(); processor.Process(); // sync back the processed data OutputTimeSeriesCollection = processor.OutputTimeSeriesCollection; } public void ReadUserSettingsSlipCircleDefinition(SlipCircleDefinition slipCircleDefinition) { if (slipCircleDefinition == null) { slipCircleDefinition = new SlipCircleDefinition(); } slipCircleDefinition.GridSizeDetermination = Properties.Settings.Default.SlipCircleGridSizeDetermination; slipCircleDefinition.UpliftVanTangentLinesDefinition = Properties.Settings.Default.SlipCircleUpliftVanTangentLinesDefinition; slipCircleDefinition.UpliftVanTangentLinesDistance = Properties.Settings.Default.SlipCircleUpliftVanTangentLinesDistance; slipCircleDefinition.UpliftVanLeftGridVerticalPointCount = Properties.Settings.Default.SlipCircleUpliftVanLeftGridVerticalPointCount; slipCircleDefinition.UpliftVanLeftGridVerticalPointDistance = Properties.Settings.Default.SlipCircleUpliftVanLeftGridVerticalPointDistance; slipCircleDefinition.UpliftVanLeftGridHorizontalPointCount = Properties.Settings.Default.SlipCircleUpliftVanLeftGridHorizontalPointCount; slipCircleDefinition.UpliftVanLeftGridHorizontalPointDistance = Properties.Settings.Default.SlipCircleUpliftVanLeftGridHorizontalPointDistance; slipCircleDefinition.UpliftVanRightGridVerticalPointCount = Properties.Settings.Default.SlipCircleUpliftVanRightGridVerticalPointCount; slipCircleDefinition.UpliftVanRightGridVerticalPointDistance = Properties.Settings.Default.SlipCircleUpliftVanRightGridVerticalPointDistance; slipCircleDefinition.UpliftVanRightGridHorizontalPointCount = Properties.Settings.Default.SlipCircleUpliftVanRightGridHorizontalPointCount; slipCircleDefinition.UpliftVanRightGridHorizontalPointDistance = Properties.Settings.Default.SlipCircleUpliftVanRightGridHorizontalPointDistance; slipCircleDefinition.BishopTangentLinesDefinition = Properties.Settings.Default.SlipCircleBishopTangentLinesDefinition; slipCircleDefinition.BishopTangentLinesDistance = Properties.Settings.Default.SlipCircleBishopTangentLinesDistance; slipCircleDefinition.BishopGridVerticalPointCount = Properties.Settings.Default.SlipCircleBishopGridVerticalPointCount; slipCircleDefinition.BishopGridVerticalPointDistance = Properties.Settings.Default.SlipCircleBishopGridVerticalPointDistance; slipCircleDefinition.BishopGridHorizontalPointCount = Properties.Settings.Default.SlipCircleBishopGridHorizontalPointCount; slipCircleDefinition.BishopGridHorizontalPointDistance = Properties.Settings.Default.SlipCircleBishopGridHorizontalPointDistance; } } }