// Copyright (C) Stichting Deltares 2024. All rights reserved. // // This file is part of the application DAM - UI. // // 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 CommandLine; using CommandLine.Text; using Deltares.Standard.Reflection; namespace Deltares.Dam.Tools.CsvToDamxConverter { internal class CommandOptions : CommandLineOptionsBase { [Option("i", "inputDir", Required = true, HelpText = "Input dike data folder to read. (CSV source files)")] public string InputDataDirectory { get; set; } [Option("o", "outputDir", Required = false, DefaultValue = "CsvToDamxOutput", HelpText = "Output folder to save/copy data to. Default value: CsvToDamxOutput")] public string OuputDataDirectory { get; set; } [Option("d", "damxFileName", Required = false, DefaultValue = "input.damx", HelpText = "Name of the DAMX file (without a path). Default value: input.damx")] public string DamXFileName { get; set; } [Option("s", "sensorDataFileName", Required = false, DefaultValue = "sensordata.xls", HelpText = "Name of the sensor data file. Default value: sensordata.xls")] public string SensorDataFileName { get; set; } [HelpOption] public string GetUsage() { var help = new HelpText { Heading = new HeadingInfo(ThisAssembly.Title, ThisAssembly.AssemblyVersion), Copyright = new CopyrightInfo(ThisAssembly.Company, 2012), AdditionalNewLineAfterOption = true, AddDashesToOption = true }; HandleParsingErrorsInHelp(help); //help.AddPreOptionsLine("<>"); help.AddPreOptionsLine("Usage: CsvToDamXConverter -i DikeCSVInputFolderName [-o OutputFolderName (default=CsvToDamXOutput)] [-d DamXFileName (default=input.damx)] [-s SensorDataFileName (default=sensordata.xls)]"); help.AddOptions(this); return help; } private AssemblyInfoHelper ThisAssembly { get; } = new AssemblyInfoHelper(typeof(Program)); void HandleParsingErrorsInHelp(HelpText help) { if (LastPostParsingState.Errors.Count > 0) { string errors = help.RenderParsingErrorsText(this, 2); // indent with two spaces if (!string.IsNullOrEmpty(errors)) { help.AddPreOptionsLine(string.Concat(Environment.NewLine, "ERROR(S):")); help.AddPreOptionsLine(errors); } } } } }