Example #1
0
        private Task <ReportFieldsViewModel> ReportFieldsAsync()
        {
            ReportFieldsViewModel fvm = new ReportFieldsViewModel();

            FarmDetails fd = _ud.FarmDetails();


            List <Field> flds = _ud.GetFields();

            foreach (var m in flds)
            {
                DisplayReportField dc = new DisplayReportField();
                dc.fldName = m.fieldName;
                if (m.soilTest != null)
                {
                    dc.sampleDate = m.soilTest.sampleDate.ToString("MMM-yyyy");
                    dc.dispNO3H   = m.soilTest.valNO3H.ToString();
                    dc.dispP      = m.soilTest.ValP.ToString();
                    dc.dispK      = m.soilTest.valK.ToString();
                    dc.dispPH     = m.soilTest.valPH.ToString();
                }
                fvm.fields.Add(dc);
            }

            return(Task.FromResult(fvm));
        }
        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));
        }
Example #3
0
        private Task <SoilTestsViewModel> GetSoilTestAsync()
        {
            SoilTestsViewModel svm = new SoilTestsViewModel();

            Utility.SoilTestConversions stc = new SoilTestConversions(_ud, _sd);

            svm.missingTests = false;

            FarmDetails fd = _ud.FarmDetails();

            svm.testingMethod = fd.testingMethod;

            svm.tests = new List <DisplaySoilTest>();

            List <Field> flds = _ud.GetFields();

            foreach (var m in flds)
            {
                DisplaySoilTest dc = new DisplaySoilTest();
                dc.fldName = m.fieldName;
                if (m.soilTest != null)
                {
                    dc.sampleDate  = m.soilTest.sampleDate.ToString("MMM-yyyy");
                    dc.dispNO3H    = m.soilTest.valNO3H.ToString();
                    dc.dispP       = m.soilTest.ValP.ToString();
                    dc.dispK       = m.soilTest.valK.ToString();
                    dc.dispPH      = m.soilTest.valPH.ToString();
                    dc.dispPRating = _sd.SoilTestRating("phosphorous", stc.GetConvertedSTP(m.soilTest));
                    dc.dispKRating = _sd.SoilTestRating("potassium", stc.GetConvertedSTK(m.soilTest));
                }
                else
                {
                    svm.missingTests = true;
                }
                svm.tests.Add(dc);
            }

            return(Task.FromResult(svm));
        }
Example #4
0
        private Task <NavigationDetailViewModel> GetNavigationAsync(NavigationDetailViewModel currentNavViewModel)
        {
            var ndvm = new NavigationDetailViewModel
            {
                MainMenus = new List <MainMenu>(),
                SubMenus  = new List <SubMenu>()
            };

            if (_ud.IsActiveSession())
            {
                var journey = _ud.FarmDetails().UserJourney;
                ndvm.MainMenus = _sd.GetJourney((int)journey)
                                 .MainMenus
                                 .OrderBy(m => m.SortNumber)
                                 .ToList();

                var currentAction = CoreSiteActions.NotUsed;
                var currentPage   = FeaturePages.NotUsed;

                if (currentNavViewModel.UsesFeaturePages)
                {
                    if (currentNavViewModel.CurrentPage.ToLower().EndsWith("index"))
                    {
                        currentPage = EnumHelper <FeaturePages> .GetValueFromDescription(currentNavViewModel.CurrentPage);
                    }
                    else
                    {
                        var indexPage = currentNavViewModel
                                        .CurrentPage.Substring(0, currentNavViewModel.CurrentPage.LastIndexOf('/') + 1);
                        currentPage = EnumHelper <FeaturePages> .GetValueFromDescription($"{indexPage}Index");
                    }
                }
                else
                {
                    currentAction = EnumHelper <CoreSiteActions> .Parse(currentNavViewModel.CurrentAction);
                }

                if (currentNavViewModel.UsesFeaturePages || currentAction > CoreSiteActions.Home)
                {
                    ndvm.UseInterceptJS = currentAction == CoreSiteActions.Farm;
                    var currentMainMenu = ndvm.MainMenus
                                          .SingleOrDefault(m => m.IsCurrentMainMenu(currentAction) || m.IsCurrentMainMenu(currentPage));

                    if (currentMainMenu != null)
                    {
                        currentMainMenu.ElementId = "current";
                        ndvm.SubMenus             = currentMainMenu.SubMenus.OrderBy(s => s.SortNumber).ToList();

                        ndvm.SubMenus = FilterRanchSubMenus(journey, ndvm.SubMenus);

                        var currentSubMenu = ndvm.SubMenus.SingleOrDefault(sm =>
                                                                           sm.IsSubMenuCurrent(currentAction) || sm.IsSubMenuCurrent(currentPage));

                        if (currentSubMenu != null)
                        {
                            currentSubMenu.ElementId = "current2";
                        }
                    }
                }
            }

            return(Task.FromResult(ndvm));
        }
Example #5
0
        private Task <NavigationDetailViewModel> GetNavigationAsync(CoreSiteActions currentAction)
        {
            var ndvm = new NavigationDetailViewModel();

            ndvm.mainMenuOptions = new List <MainMenu>();
            ndvm.subMenuOptions  = new List <SubMenu>();

            if (_ud.IsActiveSession())
            {
                ndvm.mainMenuOptions = _sd.GetMainMenus();

                var hasAnimals           = _ud.FarmDetails()?.HasAnimals ?? true;
                var importsManureCompost = _ud.FarmDetails()?.ImportsManureCompost ?? true;

                var greyOutClass = "top-level-nav-greyedout";

                var noManureCompost = !_ud.GetAllManagedManures().Any(); //Want true to grey out Storage and Nutrient Analysis

                ndvm.mainMenuOptions
                .Single(s => s.Action.Equals(CoreSiteActions.ManureGeneratedObtained.ToString()))
                .GreyOutClass = !hasAnimals && !importsManureCompost ? greyOutClass : string.Empty;

                if (currentAction > CoreSiteActions.Home)
                {
                    ndvm.UseInterceptJS = currentAction == CoreSiteActions.Farm;
                    var currentMainMenu =
                        ndvm.mainMenuOptions.SingleOrDefault(m => m.IsCurrentMainMenu(currentAction.ToString()));
                    if (currentMainMenu != null)
                    {
                        currentMainMenu.ElementId = "current";
                        ndvm.subMenuOptions       = currentMainMenu.SubMenus;

                        var currentSubMenu = ndvm.subMenuOptions.SingleOrDefault(sm =>
                                                                                 sm.Action.Equals(currentAction.ToString(), StringComparison.CurrentCultureIgnoreCase));

                        if (currentSubMenu != null)
                        {
                            currentSubMenu.ElementId = "current2";
                        }

                        if (currentMainMenu.Controller.Equals(AppControllers.ManureManagement.ToString()))
                        {
                            if (currentMainMenu.Controller == AppControllers.ManureManagement.ToString())
                            {
                                greyOutClass = "second-level-nav-greyedout";
                                ndvm.subMenuOptions
                                .Single(s => s.Action.Equals(CoreSiteActions.ManureGeneratedObtained.ToString()))
                                .GreyOutClass = !hasAnimals ? greyOutClass : string.Empty;

                                ndvm.subMenuOptions
                                .Single(s => s.Action.Equals(CoreSiteActions.ManureImported.ToString()))
                                .GreyOutClass = !importsManureCompost ? greyOutClass : string.Empty;

                                ndvm.subMenuOptions
                                .Single(s => s.Action.Equals(CoreSiteActions.ManureStorage.ToString()))
                                .GreyOutClass = !hasAnimals && !importsManureCompost
                                        ? greyOutClass
                                        : string.Empty;

                                ndvm.subMenuOptions
                                .Single(s => s.Action.Equals(CoreSiteActions.ManureNutrientAnalysis.ToString()))
                                .GreyOutClass = !hasAnimals && !importsManureCompost
                                        ? greyOutClass
                                        : string.Empty;
                            }
                        }
                    }
                }
            }

            return(Task.FromResult(ndvm));
        }