コード例 #1
0
        static void Main(string[] args)
        {
            // default filename in same folder as executable
            string filename         = "Barley_IT_AgMIP.json";
            string filenameErrorOut = "errorOut.txt";
            // default output path to user Documents
            string outpath = System.Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + Path.DirectorySeparatorChar + "AgMIPToMonicaOut";

            for (int i = 0; i < args.Length; i++)
            {
                if (args[i] == "-filename" && i + 1 < args.Length)
                {
                    filename = args[i + 1];
                }
                if (args[i] == "-out" && i + 1 < args.Length)
                {
                    outpath = args[i + 1];
                }
            }
            // check if input file exists
            if (!File.Exists(filename))
            {
                Console.WriteLine("Input file {0} does not exist!", filename);
                Environment.Exit(10);
            }
            // check if output path exists or can be created
            if (!Directory.Exists(outpath))
            {
                try
                {
                    if (!string.IsNullOrWhiteSpace(outpath))
                    {
                        Directory.CreateDirectory(outpath);
                    }
                    else
                    {
                        Console.WriteLine("Invaild output directory!");
                        Environment.Exit(10);
                    }
                }
                catch (IOException ex)
                {
                    Console.WriteLine("An error occured:");
                    Console.WriteLine(ex.Message);
                    Environment.Exit(10);
                }
            }

            // read json file, extract relevant data, write to file
            try
            {
                string  jsonText  = File.ReadAllText(filename);
                JObject agMipJson = JObject.Parse(jsonText);
                string  errorOut  = "";
                ClimateData.ExtractWeatherData(outpath, agMipJson, ref errorOut);
                SiteData.ExtractSoilData(outpath, agMipJson, ref errorOut);
                Cultivation.ExtractCropData(outpath, agMipJson);

                if (!string.IsNullOrWhiteSpace(errorOut))
                {
                    File.WriteAllText(outpath + Path.DirectorySeparatorChar + filenameErrorOut, errorOut.ToString());
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine("An error occured:");
                Console.WriteLine(ex.Message);
                Console.ReadKey();
                Environment.Exit(10);
            }
        }