public IActionResult SoilTestDetails(string fldName) { SoilTestDetailsViewModel tvm = new SoilTestDetailsViewModel(); tvm.title = "Update"; tvm.url = _sd.GetExternalLink("soiltestexplanation"); tvm.urlText = _sd.GetUserPrompt("moreinfo"); tvm.SoilTestValuesMsg = _sd.GetUserPrompt("SoilTestValuesMessage"); tvm.SoilTestNitrogenNitrateMsg = _sd.GetUserPrompt("SoilTestNitrogenNitrateMessage"); tvm.SoilTestPhosphorousMsg = _sd.GetUserPrompt("SoilTestPhosphorousMessage"); tvm.SoilTestPotassiumMsg = _sd.GetUserPrompt("SoilTestPotassiumMessage"); tvm.SoilTestPHMsg = _sd.GetUserPrompt("SoilTestPHMessage"); Field fld = _ud.GetFieldDetails(fldName); tvm.fieldName = fldName; if (fld.soilTest != null) { tvm.sampleDate = fld.soilTest.sampleDate.ToString("MMM-yyyy"); tvm.dispK = fld.soilTest.valK.ToString("G29"); tvm.dispNO3H = fld.soilTest.valNO3H.ToString("G29"); tvm.dispP = fld.soilTest.ValP.ToString("G29"); tvm.dispPH = fld.soilTest.valPH.ToString("G29"); } return(View(tvm)); }
public IActionResult SoilTestDetails(string fldName) { SoilTestDetailsViewModel tvm = new SoilTestDetailsViewModel(); tvm.title = "Update"; Field fld = _ud.GetFieldDetails(fldName); tvm.fieldName = fldName; if (fld.soilTest != null) { tvm.sampleDate = fld.soilTest.sampleDate.ToString("MMM-yyyy"); tvm.dispK = fld.soilTest.valK.ToString(); tvm.dispNO3H = fld.soilTest.valNO3H.ToString(); tvm.dispP = fld.soilTest.ValP.ToString(); tvm.dispPH = fld.soilTest.valPH.ToString(); } tvm.url = _sd.GetExternalLink("soiltestvaluesexplanation"); return(View(tvm)); }
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)); } Field fld = _ud.GetFieldDetails(tvm.fieldName); if (fld.soilTest == null) { fld.soilTest = new 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(_ud.FarmDetails()?.testingMethod, fld.soilTest); fld.soilTest.ConvertedKelownaP = _soilTestConversions.GetConvertedSTP(_ud.FarmDetails()?.testingMethod, 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)); }