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