static void Main(string[] args)
{
if (args.Length != 6)
{
PrintUsage();
return;
}
string observed = args[0];
string baseline = args[1];
string future = args[2];
string outfile = args[3];
string informat = args[4];
string outformat = args[5];
var inFilesOrFolders = new List<string> { observed, baseline, future };
//check input files exist
if (File.Exists(inFilesOrFolders[0]))
{
foreach (var file in inFilesOrFolders)
{
if (!File.Exists(file))
{
Console.WriteLine("error: file not found - " + file);
return;
}
}
}
//check input folders exist
bool processDirectories = false;
string dir = Path.GetFullPath(inFilesOrFolders[0]);
if (Directory.Exists(dir))
{
foreach (var str in inFilesOrFolders)
{
dir = Path.GetFullPath(str);
if (!Directory.Exists(dir))
{
Console.WriteLine("error: directory not found - " + dir);
return;
}
}
processDirectories = true;
}
//check informat/outformat properly specified
if ((informat != "csv" && informat != "vic") ||
(outformat != "csv" && outformat != "vic"))
{
PrintUsage();
return;
}
//parse informat/outformat to TextFormat enum type
TextFormat infmt = (TextFormat)Enum.Parse(typeof(TextFormat), informat);
TextFormat outfmt = (TextFormat)Enum.Parse(typeof(TextFormat), outformat);
//do bias correction
if (processDirectories)
{
BiasCorrectFolders(observed, baseline, future, outfile, infmt, outfmt);
}
else
{
BiasCorrectFile(observed, baseline, future, outfile, infmt, outfmt);
}
}