// Copyright (C) Stichting Deltares 2018. All rights reserved. // // 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 // 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. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // All names, logos, and references to "Deltares" are registered trademarks of // Stichting Deltares and remain full property of Stichting Deltares at all times. // All rights reserved. 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"); } } // TODO: Here the connection should be made with the Dam Engine // It will replace the following code: // var processor = new SensorTimeSeriesProcessor // { // CalculationParameters = calcParams, // InputTimeSeriesCollection = InputTimeSeriesCollection, // OutputTimeSeriesCollection = OutputTimeSeriesCollection, // Locations = locations // }; // // processor.Initialize(); // processor.Process(); // // // sync back the processed data // OutputTimeSeriesCollection = processor.OutputTimeSeriesCollection; OutputTimeSeriesCollection = new TimeSerieCollection(); } 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; } } }