private Task <GetSoilTestNitrateOverrideViewModel> GetSoilTestNitrateOverrideAsync(string fldName)
        {
            GetSoilTestNitrateOverrideViewModel soilvm = new GetSoilTestNitrateOverrideViewModel();

            // get the current associated value for nitrogen credit.  Note, can be null
            SERVERAPI.Utility.ChemicalBalanceMessage calculator = new Utility.ChemicalBalanceMessage(_ud, _sd);

            FarmDetails farmdtl = _ud.FarmDetails();
            Field       fld     = _ud.GetFieldDetails(fldName);

            soilvm.display = false;

            if ((fld.crops != null) && (fld.soilTest != null))
            {
                if (fld.crops.Count() > 0)
                {
                    soilvm.display = _sd.IsNitrateCreditApplicable(farmdtl.farmRegion, fld.soilTest.sampleDate, Convert.ToInt16(farmdtl.year));
                    if (soilvm.display)
                    {
                        soilvm.fldName = fldName;
                        if (fld.SoilTestNitrateOverrideNitrogenCredit != null)
                        {
                            soilvm.nitrogen = Math.Round(Convert.ToDecimal(fld.SoilTestNitrateOverrideNitrogenCredit));
                        }
                        else
                        {
                            // lookup default Nitrogen credit
                            soilvm.nitrogen = Math.Round(fld.soilTest.valNO3H * _sd.GetSoilTestNitratePPMToPoundPerAcreConversionFactor());
                        }
                    }
                    else
                    {
                        fld.SoilTestNitrateOverrideNitrogenCredit = null;
                        _ud.UpdateField(fld);
                    }
                }
                else
                {
                    fld.SoilTestNitrateOverrideNitrogenCredit = null;
                    _ud.UpdateField(fld);
                }
            }
            else
            {
                fld.SoilTestNitrateOverrideNitrogenCredit = null;
                _ud.UpdateField(fld);
            }
            return(Task.FromResult(soilvm));
        }
Ejemplo n.º 2
0
        private Task <PrevYearManureApplViewModel> GetPrevYearManureAsync(string fldName)
        {
            PrevYearManureApplViewModel manureVM = new PrevYearManureApplViewModel();

            // get the current associated value for nitrogen credit.  Note, can be null
            SERVERAPI.Utility.ChemicalBalanceMessage calculator = new Utility.ChemicalBalanceMessage(_ud, _sd);

            Field fld = _ud.GetFieldDetails(fldName);

            manureVM.display = false;
            if (fld.crops != null)
            {
                if (fld.crops.Count() > 0)
                {
                    manureVM.display = _sd.WasManureAddedInPreviousYear(fld.prevYearManureApplicationFrequency);
                    if (manureVM.display)
                    {
                        manureVM.fldName = fldName;
                        if (fld.prevYearManureApplicationNitrogenCredit != null)
                        {
                            manureVM.nitrogen = fld.prevYearManureApplicationNitrogenCredit;
                        }
                        else
                        {
                            // lookup default Nitrogen credit
                            manureVM.nitrogen = calculator.calcPrevYearManureApplDefault(fldName);
                        }
                    }
                    else
                    {
                        fld.prevYearManureApplicationNitrogenCredit = null;
                        _ud.UpdateField(fld);
                    }
                }
                else
                {
                    fld.prevYearManureApplicationNitrogenCredit = null;
                    _ud.UpdateField(fld);
                }
            }
            else
            {
                //reset the nitrogen credit to null
                fld.prevYearManureApplicationNitrogenCredit = null;
                _ud.UpdateField(fld);
            }
            return(Task.FromResult(manureVM));
        }