BiasCorrectQ.Program.Main C# (CSharp) Method

Main() static private method

static private Main ( string args ) : void
args string
return void
        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);
            }
        }