public IActionResult SoilTest(SoilTestViewModel fvm) { fvm.tstOptions = new List <Models.StaticData.SelectListItem>(); fvm.tstOptions = _sd.GetSoilTestMethodsDll().ToList(); if (fvm.buttonPressed == "MethodChange") { ModelState.Clear(); FarmDetails fd = _ud.FarmDetails(); fd.testingMethod = fvm.selTstOption == "select" ? string.Empty : fvm.selTstOption; _ud.UpdateFarmDetails(fd); fvm.testSelected = string.IsNullOrEmpty(fd.testingMethod) ? false : true; Utility.SoilTestConversions soilTestConversions = new Utility.SoilTestConversions(_ud, _sd); List <Field> fl = _ud.GetFields(); //update fields with convert STP and STK soilTestConversions.UpdateSTPSTK(fl); //update the Nutrient calculations with the new/changed soil test data Utility.ChemicalBalanceMessage cbm = new Utility.ChemicalBalanceMessage(_ud, _sd); cbm.RecalcCropsSoilTestMessagesByFarm(); RedirectToAction("SoilTest", "Soil"); } return(View(fvm)); }
public IActionResult SoilTestDetails(SoilTestDetailsViewModel tvm) { decimal nmbr; if (ModelState.IsValid) { if (!Decimal.TryParse(tvm.dispNO3H, out nmbr)) { ModelState.AddModelError("dispNO3H", "Numbers only."); } else { if (nmbr < 0) { ModelState.AddModelError("dispNO3H", "Invalid."); } } if (!Decimal.TryParse(tvm.dispP, out nmbr)) { ModelState.AddModelError("dispP", "Numbers only."); } else { if (nmbr < 0) { ModelState.AddModelError("dispP", "Invalid."); } } if (!Decimal.TryParse(tvm.dispK, out nmbr)) { ModelState.AddModelError("dispK", "Numbers only."); } else { if (nmbr < 0) { ModelState.AddModelError("dispK", "Invalid."); } } if (!Decimal.TryParse(tvm.dispPH, out nmbr)) { ModelState.AddModelError("dispPH", "Numbers only."); } else { if (nmbr < 0 || nmbr > 14) { ModelState.AddModelError("dispPH", "Invalid."); } } if (!ModelState.IsValid) { return(View(tvm)); } Utility.SoilTestConversions soilTestConversions = new Utility.SoilTestConversions(_ud, _sd); Field fld = _ud.GetFieldDetails(tvm.fieldName); if (fld.soilTest == null) { fld.soilTest = new Models.SoilTest(); } fld.soilTest.sampleDate = Convert.ToDateTime(tvm.sampleDate); fld.soilTest.ValP = Convert.ToDecimal(tvm.dispP); fld.soilTest.valK = Convert.ToDecimal(tvm.dispK); fld.soilTest.valNO3H = Convert.ToDecimal(tvm.dispNO3H); fld.soilTest.valPH = Convert.ToDecimal(tvm.dispPH); fld.soilTest.ConvertedKelownaK = soilTestConversions.GetConvertedSTK(fld.soilTest); fld.soilTest.ConvertedKelownaP = soilTestConversions.GetConvertedSTP(fld.soilTest); _ud.UpdateFieldSoilTest(fld); //update the Nutrient calculations with the new/changed soil test data Utility.ChemicalBalanceMessage cbm = new Utility.ChemicalBalanceMessage(_ud, _sd); cbm.RecalcCropsSoilTestMessagesByField(tvm.fieldName); string target = "#test"; string url = Url.Action("RefreshTestList", "Soil"); return(Json(new { success = true, url = url, target = target })); } return(View(tvm)); }