コード例 #1
0
        public bool clean()
        {
            // Clean [fertigation:x] and [manure_storage:x], keep lagoon
            Dictionary <string, string> lagoon = new Dictionary <string, string>();

            if (dDp.GetSection("manure_storage:1").Count > 0)
            {
                bool isLagoon = false;
                int  count    = 1;

                do
                {
                    string sect = "manure_storage:" + count;
                    string ID   = dDp.GetValue(sect, "ID");
                    lagoon = dDp.GetSection(sect);
                    if (ID == "lagoon")
                    {
                        isLagoon = true;
                    }
                    count++;
                } while (!isLagoon);
            }

            // Clean
            dDp.Clear("fertigation");
            dDp.Clear("manure_storage");
            dDp.Clear("manure_separator");

            // Re-add lagoon
            if (lagoon.Count > 0)
            {
                dDp.SetSection("manure_storage:1", lagoon);
            }

            return(true);
        }
コード例 #2
0
        public Scenario Parse()
        {
            Scenario s = new Scenario();

            #region Scenario
            s.DetailsUrl    = dDp.GetValueOnly("dairy scenario", "details_URL");
            s.Description   = dDp.GetValue("dairy scenario", "description");
            s.Accumulations =
                Convert.ToInt16(dDp.GetValueOnly("dairy scenario",
                                                 "accumulations"));
            s.SimulationPeriodMode = dDp.GetValueOnly("dairy scenario",
                                                      "simulation_period_mode");
            s.IrrigationPumpModel = dDp.GetValueOnly("dairy scenario",
                                                     "irrigation_pump_model");
            s.ParameterizedScenario =
                Convert.ToInt16(dDp.GetValueOnly("dairy scenario",
                                                 "parameterized_scenario"));
            s.Latitude =
                Convert.ToDouble(dDp.GetValueOnly("dairy scenario",
                                                  "latitude"));
            s.Longitude =
                Convert.ToDouble(dDp.GetValueOnly("dairy scenario",
                                                  "longitude"));
            string sd = dDp.GetValueOnly("dairy scenario", "start_date");
            s.StartDate = !String.IsNullOrEmpty(sd)
                ? parseDateFromIniFile(sd)
                : DateTime.Now;

            string ed = dDp.GetValueOnly("dairy scenario", "stop_date");
            s.StopDate = !String.IsNullOrEmpty(ed)
                ? parseDateFromIniFile(ed)
                : DateTime.Now;

            string w = dDp.GetValueOnly("dairy scenario", "weather");
            s.PathToWeatherFile = !String.IsNullOrEmpty(w)
                ? w
                : "";

            int manureSeparatorCount =
                Convert.ToInt16(dDp.GetValueOnly("dairy scenario", "manure_separator:count"));
            int manureStorageCount =
                Convert.ToInt16(dDp.GetValueOnly("dairy scenario", "manure_storage:count"));
            int receiveOffFarmBiomassCount =
                Convert.ToInt16(dDp.GetValueOnly("dairy scenario", "receive_off_farm_biomass:count"));
            #endregion

            parseBarn(s);
            parseCow(s);
            parseManureSeparators(s, manureSeparatorCount);
            parseLagoon(s, manureStorageCount);
            parseFertigationManagement(s);
            parseReceiveOffFarmBiomass(s, receiveOffFarmBiomassCount);
            parseField(s);
            return(s);
        }