// Copyright (C) Stichting Deltares 2019. All rights reserved. // // This file is part of the Dam Macrostability Kernel. // // The Dam Macrostability Kernel 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 Affero General Public License for more details. // // 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 // Stichting Deltares and remain full property of Stichting Deltares at all times. // All rights reserved. using System; using System.Collections.Generic; using Deltares.DamMacroStability.Calculator.Properties; namespace Deltares.DamMacroStability.Calculator { public class StabilityCalculator { private List results= new List(); /// /// The name of the project. /// public string ProjectName { get; set; } /// /// The stability executable path. /// Leave it empty to use the default path /// public string DGeoStabilityExePath { get; set; } /// /// Initializes a new instance of the class. /// public StabilityCalculator() { DGeoStabilityExePath = ""; } /// /// Runs the stability calculation for a file of folder /// and reads the results from the outputfile(s) /// /// public void Calculate() { try { results = new List(); // run DGeoStability DGeoStabilityExeRunner exeRunner = new DGeoStabilityExeRunner(); if (DGeoStabilityExePath == "") { DGeoStabilityExePath = exeRunner.DGeoStabilityExePath; } else { exeRunner.DGeoStabilityExePath = DGeoStabilityExePath; } exeRunner.RunDGeoStabilityProject(ProjectName); // read result from DGeoStability run results = DGeoStabilityResultReader.ExtractStabilityResults(ProjectName); } catch (Exception e) { throw new StabilityCalculatorException( string.Format(Resources.StabilityCalculator_Calculate_ErrorCalculatingStabilityFactorForProject, ProjectName), e); } } /// /// Gets the results. /// /// A list of results from the DGeoStability calculation(s) public List GetResults() { return results; } } }