Example #1
0
        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));
        }
Example #2
0
        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));
        }
Example #3
0
        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));
        }