// 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);
}
}
}
}
}