Esempio n. 1
0
        protected override bool AuthorizeCore(HttpContextBase httpContext)
        {
            Authentication authentication = new Authentication(ManageSession.GetUserName(),
                                                               ManageSession.GetUserPassword());

            return(authentication.IsAuthenticated());
        }
        private List <System.Web.Mvc.SelectListItem> LoadFarms(long?farmId = null, Farm farm = null)
        {
            UserConfiguration uc;

            uc = new UserConfiguration();
            User lLoggedUser;

            lLoggedUser = uc.GetUserByName(ManageSession.GetUserName());
            FarmConfiguration fc = new FarmConfiguration();

            List <Farm> farms = fc.GetFarmListBy(lLoggedUser);
            List <System.Web.Mvc.SelectListItem> result = new List <SelectListItem>();

            foreach (var item in farms)
            {
                bool isSelected = false;
                if (farm != null && farmId.HasValue)
                {
                    isSelected = (farm.FarmId == farmId);
                }

                SelectListItem sl = new SelectListItem()
                {
                    Value    = item.FarmId.ToString(),
                    Text     = item.Name,
                    Selected = isSelected
                };

                result.Add(sl);
            }

            return(result);
        }
        /// <summary>
        /// Return Grid Irrigation Unit for Home Titles
        /// </summary>
        /// <returns></returns>
        public List <GridPivotHome> GetGridPivotHomeTitles()
        {
            #region Local Variables
            List <GridPivotHome>       lGridIrrigationUnitList = new List <GridPivotHome>();
            GridPivotHome              lGridIrrigationUnit;
            List <GridPivotDetailHome> lGridIrrigationUnitDetailRow;
            GridPivotDetailHome        lGridIrrigationUnitRow;
            DateTime lDateOfReference;

            #endregion

            try
            {
                lDateOfReference = ManageSession.GetNavigationDate();

                //Grid of irrigation data
                lGridIrrigationUnitDetailRow = new List <GridPivotDetailHome>();

                for (int i = -InitialTables.MIN_DAY_SHOW_IN_GRID_BEFORE_TODAY; i <= InitialTables.MAX_DAY_SHOW_IN_GRID_AFTER_TODAY; i++)
                {
                    //Day i
                    lGridIrrigationUnitRow = AddGridIrrigationUnitDays(lDateOfReference, lDateOfReference.AddDays(i), false);
                    lGridIrrigationUnitDetailRow.Add(lGridIrrigationUnitRow);
                }

                var homeViewModel = ManageSession.GetHomeViewModel();

                //Add all the days for the IrrigationUnit
                lGridIrrigationUnit = new GridPivotHome("Nombre",
                                                        "Cultivo",
                                                        "Siembra",
                                                        "Fen.",
                                                        "Balance H.",
                                                        "KC",
                                                        homeViewModel.IsUserAdministrator,
                                                        new List <double>(),
                                                        lGridIrrigationUnitDetailRow,
                                                        0);

                lGridIrrigationUnitList.Add(lGridIrrigationUnit);
            }
            catch (Exception ex)
            {
                Utils.LogError(ex, "Exception in HomeController.GetGridPivotHomeTitles ");
                throw ex;
            }

            return(lGridIrrigationUnitList);
        }
Esempio n. 4
0
        /// <summary>
        /// Return Grid Datail from dailyrecord days
        /// </summary>
        /// <returns></returns>
        public List <GridReportIrrigationUnit> GetGridDailyRecordIrrigationResumeTitles()
        {
            #region Local Variables
            List <GridReportIrrigationUnit> lGridDailyRecordIrrigationResumeList = new List <GridReportIrrigationUnit>();
            GridReportIrrigationUnit        lGridReportIrrigationUnit;
            bool lIsUserAdministrator;
            #endregion

            #region Configuration Variables
            UserConfiguration uc;
            #endregion

            try
            {
                #region userdata
                User           lLoggedUser;
                LoginViewModel lLoginViewModel;
                uc = new UserConfiguration();

                LoginViewModel localLgM = ManageSession.GetLoginViewModel();
                lLoginViewModel = ManageSession.GetLoginViewModel();
                lLoggedUser     = uc.GetUserByName(lLoginViewModel.UserName);

                lIsUserAdministrator = (lLoggedUser.RoleId == (int)Utils.UserRoles.Administrator);
                #endregion

                #region Configuration - Instance
                uc = new UserConfiguration();

                FarmConfiguration fc = new FarmConfiguration();
                #endregion

                lCurrentFarm = fc.GetFarmBy(ciwId);

                lGridReportIrrigationUnit = new GridReportIrrigationUnit("Día", "Fecha", "Riego", "Lluvia", "Temp. promedio", "ETC", "Balance hídrico", "Fenología", "KC", lCurrentFarm.IrrigationUnitReportShowEvapotranspiration, lCurrentFarm.IrrigationUnitReportShowTemperature, lCurrentFarm.IrrigationUnitReportShowAvailableWater, lIsUserAdministrator);

                lGridDailyRecordIrrigationResumeList.Add(lGridReportIrrigationUnit);
            }
            catch (Exception ex)
            {
                Utils.LogError(ex, "Exception in ReportIrrigationUnit.GetGridDailyRecordIrrigationResumeTitles");
                return(null);
            }

            return(lGridDailyRecordIrrigationResumeList);
        }
        public ActionResult Index()
        {
            IrrigationAdvisorContext.Instance();

            FarmConfiguration lFarmConfiguration;
            UserConfiguration lUserConfiguration;
            User        lLoggedUser;
            List <Farm> lFarmList;


            #region Configuration - Instance
            lUserConfiguration = new UserConfiguration();
            lFarmConfiguration = new FarmConfiguration();
            #endregion

            lLoggedUser = lUserConfiguration.GetUserByName(ManageSession.GetUserName());
            lFarmList   = lFarmConfiguration.GetFarmWithActiveCropIrrigationWeathersListBy(lLoggedUser);

            return(View("~/Views/Reports/CropIrrigationWeathersActive/CropIrrigationWeathersActive.cshtml", lFarmList));
        }
Esempio n. 6
0
        /// <summary>
        /// Return Grid Irrigation Unit for Home
        /// </summary>
        /// <returns></returns>
        public List <GridPivotHome> GetGridPivotHome()
        {
            #region Local Variables
            String lSomeData = "";
            List <GridPivotHome>       lGridIrrigationUnitList = new List <GridPivotHome>();
            GridPivotHome              lGridIrrigationUnit;
            List <GridPivotDetailHome> lGridIrrigationUnitDetailRow;
            GridPivotDetailHome        lGridIrrigationUnitRow;
            DateTime      lDateOfReference;
            FarmViewModel lFarmViewModel;
            User          lLoggedUser;
            List <Farm>   lFarmList;
            // Farm lCurrentFarm;
            List <IrrigationUnit>        lIrrigationUnitList;
            List <CropIrrigationWeather> lCropIrrigationWeatherList;
            String      lFirstPivotName = "";
            List <Rain> lRainList;
            List <Models.Water.Irrigation> lIrrigationList;
            List <DailyRecord>             lDailyRecordList;
            String        lSowingDate;
            String        lPhenologicalStageToday;
            Double        lHydricBalancePercentage;
            DailyRecord   lDailyRecord;
            String        lCropCoefficient;
            List <Double> lETcList;
            Double        lETcItem;
            HomeViewModel lHomeViewModel;
            #endregion

            #region Configuration Variables
            UserConfiguration                  lUserConfiguration;
            FarmConfiguration                  lFarmConfiguration;
            IrrigationUnitConfiguration        lIrrigationUnitConfiguration;
            CropIrrigationWeatherConfiguration lCropIrrigationWeatherConfiguration;
            IrrigationAdvisorContext           lIrrigationAdvisorContext;
            #endregion

            try
            {
                #region Configuration - Instance
                lUserConfiguration                  = new UserConfiguration();
                lFarmConfiguration                  = new FarmConfiguration();
                lIrrigationUnitConfiguration        = new IrrigationUnitConfiguration();
                lCropIrrigationWeatherConfiguration = new CropIrrigationWeatherConfiguration();
                lIrrigationAdvisorContext           = IrrigationAdvisorContext.Instance();
                #endregion

                lDateOfReference = ManageSession.GetNavigationDate();
                lSomeData        = lSomeData + "Date: " + lDateOfReference.Date + "-";

                //Obtain logged user
                lLoggedUser = lUserConfiguration.GetUserByName(ManageSession.GetUserName());
                lSomeData   = lSomeData + "User: "******"-";

                //Get list of Farms from User
                lFarmList = lFarmConfiguration.GetFarmWithActiveCropIrrigationWeathersListBy(lLoggedUser);

                //Create IrrigationQuantity Units List
                lIrrigationUnitList = new List <IrrigationUnit>();
                foreach (Farm lCurrentFarm in lFarmList)
                {
                    lSomeData      = lSomeData + "Farm: " + lCurrentFarm.Name + "-";
                    lFarmViewModel = new FarmViewModel(lCurrentFarm);

                    lIrrigationUnitList = lIrrigationUnitConfiguration.GetIrrigationUnitListBy(lCurrentFarm);

                    lCropIrrigationWeatherList = new List <CropIrrigationWeather>();
                    lDailyRecordList           = new List <DailyRecord>();

                    foreach (var lIrrigationUnit in lIrrigationUnitList)
                    {
                        lCropIrrigationWeatherList = lIrrigationUnitConfiguration.GetCropIrrigationWeatherListIncludeCropMainWeatherStationRainListIrrigationListBy(lIrrigationUnit, lDateOfReference);

                        lFirstPivotName = "";
                        lETcList        = new List <Double>();
                        foreach (CropIrrigationWeather lCropIrrigationWeather in lCropIrrigationWeatherList)
                        {
                            lSomeData = lSomeData + "CropIrrigationWeather: " + lCropIrrigationWeather.CropIrrigationWeatherName + "-";

                            lDailyRecordList = lCropIrrigationWeatherConfiguration.GetDailyRecordListIncludeDailyRecordListBy(lIrrigationUnit, lDateOfReference, lCropIrrigationWeather.Crop);

                            lRainList       = lCropIrrigationWeather.RainList;
                            lIrrigationList = lCropIrrigationWeather.IrrigationList;
                            lSowingDate     = lCropIrrigationWeather.SowingDate.Day.ToString()
                                              + "/" + lCropIrrigationWeather.SowingDate.Month.ToString();
                            //Grid of irrigation data
                            lGridIrrigationUnitDetailRow = new List <GridPivotDetailHome>();

                            lCropCoefficient         = String.Empty;
                            lPhenologicalStageToday  = String.Empty;
                            lHydricBalancePercentage = 0;

                            for (int i = -InitialTables.MIN_DAY_SHOW_IN_GRID_BEFORE_TODAY; i <= InitialTables.MAX_DAY_SHOW_IN_GRID_AFTER_TODAY; i++)
                            {
                                //Day i
                                lGridIrrigationUnitRow = AddGridIrrigationUnit(lDateOfReference, lDateOfReference.AddDays(i), lIrrigationList, lRainList, lDailyRecordList);
                                lGridIrrigationUnitDetailRow.Add(lGridIrrigationUnitRow);
                                if (i == 0) //TODAY
                                {
                                    //Obtain All data for today from DailyRecord
                                    lPhenologicalStageToday = lGridIrrigationUnitRow.Phenology;
                                    lDailyRecord            = lGridIrrigationUnitRow.DailyRecord;
                                    if (lDailyRecord != null)
                                    {
                                        lCropCoefficient         = lDailyRecord.CropCoefficient.ToString();
                                        lPhenologicalStageToday  = lDailyRecord.PhenologicalStage.Stage.ShortName;
                                        lHydricBalancePercentage = lDailyRecord.PercentageOfHydricBalance;
                                    }
                                }
                                if (lGridIrrigationUnitRow.DailyRecord == null)
                                {
                                    if (lCropIrrigationWeather.MainWeatherStationId > 0)
                                    {
                                        lETcItem = lIrrigationAdvisorContext.WeatherDatas
                                                   .Where(wd => wd.Date == lGridIrrigationUnitRow.DateOfData.Date &&
                                                          wd.WeatherStationId == lCropIrrigationWeather.MainWeatherStationId)
                                                   .Select(wd => wd.Evapotranspiration).FirstOrDefault();
                                    }
                                    else
                                    {
                                        lETcItem = lIrrigationAdvisorContext.WeatherDatas
                                                   .Where(wd => wd.Date == lGridIrrigationUnitRow.DateOfData.Date &&
                                                          wd.WeatherStationId == lCropIrrigationWeather.AlternativeWeatherStationId)
                                                   .Select(wd => wd.Evapotranspiration).FirstOrDefault();
                                    }
                                }
                                else
                                {
                                    lETcItem = Math.Round(lGridIrrigationUnitRow.DailyRecord.EvapotranspirationCrop.Output / lGridIrrigationUnitRow.DailyRecord.CropCoefficient, 2);
                                }
                                lETcList.Add(Math.Round(lETcItem, 2));
                            }
                            if (String.IsNullOrEmpty(lFirstPivotName))
                            {
                                lFirstPivotName = lCropIrrigationWeather.IrrigationUnit.ShortName;
                            }
                            else if (lFirstPivotName == lCropIrrigationWeather.IrrigationUnit.ShortName)
                            {
                                lFirstPivotName = "";
                            }

                            lHomeViewModel = ManageSession.GetHomeViewModel();

                            //Add all the days for the IrrigationUnit
                            lGridIrrigationUnit = new GridPivotHome(lCurrentFarm.Name + " | " + lFirstPivotName,
                                                                    lCropIrrigationWeather.Crop.ShortName,
                                                                    lSowingDate,
                                                                    lPhenologicalStageToday,
                                                                    lHydricBalancePercentage.ToString() + " %",
                                                                    lCropCoefficient,
                                                                    lHomeViewModel.IsUserAdministrator,
                                                                    lETcList,
                                                                    lGridIrrigationUnitDetailRow,
                                                                    lCropIrrigationWeather.CropIrrigationWeatherId);

                            lGridIrrigationUnitList.Add(lGridIrrigationUnit);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Utils.LogError(ex, "Exception in HomeController.GetGridPivotHome \n {0} ", lSomeData);
                throw ex;
            }

            return(lGridIrrigationUnitList);
        }
Esempio n. 7
0
        /// <summary>
        /// Return Grid Irrigation Unit for Home Titles
        /// </summary>
        /// <returns></returns>
        public List <GridPivotHome> GetGridPivotHomeTitles()
        {
            #region Local Variables
            List <GridPivotHome>       lGridIrrigationUnitList = new List <GridPivotHome>();
            GridPivotHome              lGridIrrigationUnit;
            List <GridPivotDetailHome> lGridIrrigationUnitDetailRow;
            GridPivotDetailHome        lGridIrrigationUnitRow;
            DateTime    lDateOfReference;
            User        lLoggedUser;
            List <Farm> lFarmList;

            #endregion

            #region Configuration Variables
            UserConfiguration uc;
            FarmConfiguration fc;
            #endregion

            try
            {
                #region Configuration - Instance
                uc = new UserConfiguration();
                fc = new FarmConfiguration();
                #endregion

                lDateOfReference = ManageSession.GetNavigationDate();

                //Obtain logged user
                lLoggedUser = uc.GetUserByName(ManageSession.GetUserName());

                //Get list of Farms from User
                lFarmList = fc.GetFarmListIncludedIrrigationUnitListCityBy(lLoggedUser);

                //Grid of irrigation data
                lGridIrrigationUnitDetailRow = new List <GridPivotDetailHome>();

                for (int i = -InitialTables.MIN_DAY_SHOW_IN_GRID_BEFORE_TODAY; i <= InitialTables.MAX_DAY_SHOW_IN_GRID_AFTER_TODAY; i++)
                {
                    //Day i
                    lGridIrrigationUnitRow = AddGridIrrigationUnitDays(lDateOfReference, lDateOfReference.AddDays(i));
                    lGridIrrigationUnitDetailRow.Add(lGridIrrigationUnitRow);
                }

                var homeViewModel = ManageSession.GetHomeViewModel();
                //Add all the days for the IrrigationUnit
                lGridIrrigationUnit = new GridPivotHome("Nombre",
                                                        "Cultivo",
                                                        "Siembra",
                                                        "Fen.",
                                                        "Balance H.",
                                                        "KC",
                                                        homeViewModel.IsUserAdministrator,
                                                        new List <double>(),
                                                        lGridIrrigationUnitDetailRow,
                                                        0);

                lGridIrrigationUnitList.Add(lGridIrrigationUnit);
            }
            catch (Exception ex)
            {
                Utils.LogError(ex, "Exception in HomeController.GetGridPivotHomeTitles ");
                throw ex;
            }

            return(lGridIrrigationUnitList);
        }
Esempio n. 8
0
        /// <summary>
        /// Return Grid Datail from dailyrecord days
        /// </summary>
        /// <returns></returns>
        public List <GridReportPivotState> GetGridDailyRecordIrrigationResume()
        {
            #region Local Variables
            string lEffectiveRain;
            string lEffectiveInputWater;
            double lEffectiveRainDouble;
            double lEffectiveInputWaterDouble;

            List <GridReportPivotState> lGridIrrigationUnitList = new List <GridReportPivotState>();
            List <GridReportPivotState> lGridDailyRecordIrrigationResumeList = new List <GridReportPivotState>();
            GridReportPivotState        lGridDailyRecordIrrigationResume     = null;
            DateTime lDateOfReference;


            List <DailyRecord>           lDailyRecordList;
            DailyRecordConfiguration     lDailyRecordConfiguration;
            List <IrrigationUnit>        lIrrigationUnitList;
            List <CropIrrigationWeather> lCropIrrigationWeatherList;
            List <Farm>                 lFarmList;
            FarmConfiguration           lFarmConfiguration;
            UserConfiguration           lUserConfiguration;
            IrrigationUnitConfiguration lIrrigationUnitConfiguration;
            User lLoggedUser;
            #endregion

            #region Configuration - Instance
            lUserConfiguration = new UserConfiguration();
            lFarmConfiguration = new FarmConfiguration();

            #endregion
            try
            {
                lDateOfReference             = Utils.GetDateOfReference().Value;
                lIrrigationUnitConfiguration = new IrrigationUnitConfiguration();
                lDailyRecordConfiguration    = new DailyRecordConfiguration();


                lLoggedUser = lUserConfiguration.GetUserByName(ManageSession.GetUserName());
                lFarmList   = lFarmConfiguration.GetFarmWithActiveCropIrrigationWeathersListBy(lLoggedUser);


                //Create IrrigationQuantity Units List
                lIrrigationUnitList = new List <IrrigationUnit>();
                foreach (Farm lCurrentFarm in lFarmList)
                {
                    lIrrigationUnitList = lIrrigationUnitConfiguration.GetIrrigationUnitListBy(lCurrentFarm);

                    foreach (var lIrrigationUnit in lIrrigationUnitList)
                    {
                        lCropIrrigationWeatherList = lIrrigationUnitConfiguration.GetCropIrrigationWeatherListIncludeCropMainWeatherStationRainListIrrigationListBy(lIrrigationUnit, lDateOfReference);
                        foreach (CropIrrigationWeather lCropIrrigationWeather in lCropIrrigationWeatherList)
                        {
                            lDailyRecordList = lDailyRecordConfiguration.GetDailyRecordsListDataUntilDateBy(lCropIrrigationWeather.CropIrrigationWeatherId, lDateOfReference);


                            foreach (var lDailyRecordUnit in lDailyRecordList)
                            {
                                lEffectiveRain             = "";
                                lEffectiveInputWater       = "";
                                lEffectiveRainDouble       = 0;
                                lEffectiveInputWaterDouble = 0;

                                if (lDailyRecordUnit.Rain != null)
                                {
                                    lEffectiveRainDouble = lDailyRecordUnit.Rain.ExtraInput + lDailyRecordUnit.Rain.Input;
                                }

                                if (lDailyRecordUnit.Irrigation != null)
                                {
                                    lEffectiveInputWaterDouble = lDailyRecordUnit.Irrigation.ExtraInput + lDailyRecordUnit.Irrigation.Input;
                                }
                                if (lEffectiveRainDouble + lEffectiveInputWaterDouble > 0) // not input
                                {
                                    if (lEffectiveRainDouble != 0)
                                    {
                                        lEffectiveRain = lEffectiveRainDouble.ToString();
                                    }

                                    if (lEffectiveInputWaterDouble != 0)
                                    {
                                        lEffectiveInputWater = lEffectiveInputWaterDouble.ToString();
                                    }

                                    lGridDailyRecordIrrigationResume = new GridReportPivotState(lCurrentFarm.Name + " | " + lCropIrrigationWeather.IrrigationUnit.ShortName, lDailyRecordUnit.DaysAfterSowing.ToString(), lDailyRecordUnit.DailyRecordDateTime.ToShortDateString(), lEffectiveRain, lEffectiveInputWater);
                                    lGridDailyRecordIrrigationResumeList.Add(lGridDailyRecordIrrigationResume);
                                }
                            }
                        }
                    }
                }
            }


            catch (Exception ex)
            {
                Utils.LogError(ex, "Exception in ReportPivotState.GetGridDailyRecordIrrigationResume \n {0} ");
                return(null);
            }

            return(lGridDailyRecordIrrigationResumeList);
        }
Esempio n. 9
0
 public ClientLogin(ManageSession manageSession)
 {
     _manageSession = manageSession;
 }
        public ActionResult Index()
        {
            try
            {
                #region userdata
                User lLoggedUser;
                UserConfiguration uc;
                LoginViewModel    lLoginViewModel;
                uc = new UserConfiguration();

                LoginViewModel localLgM = ManageSession.GetLoginViewModel();

                if (localLgM == null)
                {
                    return(RedirectToAction("Index"));
                }
                else
                {
                    lLoginViewModel = ManageSession.GetLoginViewModel();
                }
                lLoggedUser            = uc.GetUserByName(lLoginViewModel.UserName);
                vm.IsUserAdministrator = (lLoggedUser.RoleId == (int)Utils.UserRoles.Administrator);
                #endregion

                DailyRecordConfiguration           drc             = new DailyRecordConfiguration();
                CropIrrigationWeatherConfiguration ciwc            = new CropIrrigationWeatherConfiguration();
                List <DailyRecord> lDailyRecordList                = new List <DailyRecord>();
                double             lHydricBalancePercentage        = 0;
                double             lSumTotalEffectiveRain          = 0;
                double             lSumTotalEffectiveInputWater    = 0;
                double             lSumTotalEvapotranspirationCrop = 0;
                string             lCropIrrigationWeatherTitle     = "";

                ciwId = GetCropIrrigationWeatherIdFromURL();

                lDailyRecordList = drc.GetDailyRecordsListDataUntilDateBy(ciwId, Utils.GetDateOfReference().Value);

                #region get ciw
                //List<CropIrrigationWeather> lCropIrrigationWeatherList = new List<CropIrrigationWeather>();
                //List<long> lListciw = new List<long>();
                //lListciw.Add(ciwId);

                //lCropIrrigationWeatherList = ciwc.GetCropIrrigationWeatherByIds(lListciw, Utils.GetDateOfReference().Value);

                //foreach (CropIrrigationWeather lCropIrrigationWeather in lCropIrrigationWeatherList)
                //{
                //    lHydricBalancePercentage = lCropIrrigationWeather.GetPercentageOfHydricBalance();
                //}
                #endregion


                foreach (DailyRecord item in lDailyRecordList)
                {
                    if (item.Rain != null)
                    {
                        lSumTotalEffectiveRain = lSumTotalEffectiveRain + item.Rain.Input + item.Rain.ExtraInput;
                    }
                    ;

                    if (item.Irrigation != null)
                    {
                        lSumTotalEffectiveInputWater = lSumTotalEffectiveInputWater + item.Irrigation.Input + item.Irrigation.ExtraInput;
                    }

                    lSumTotalEvapotranspirationCrop = item.TotalEvapotranspirationCrop;
                    lHydricBalancePercentage        = item.PercentageOfHydricBalance;
                    lCropIrrigationWeatherTitle     = item.CropIrrigationWeather.ToString();
                }
                vm.TotalEffectiveRain          = lSumTotalEffectiveRain;
                vm.TotalEffectiveInputWater    = lSumTotalEffectiveInputWater;
                vm.TotalEvapotranspirationCrop = lSumTotalEvapotranspirationCrop;
                vm.Title = lCropIrrigationWeatherTitle;
                vm.CropIrrigationWeatherId = ciwId;
                vm.HydricBalancePercentage = lHydricBalancePercentage;
                return(View("~/Views/Reports/ReportPivotState/ReportPivotState.cshtml", vm));
            }
            catch (Exception ex)
            {
                Utils.LogError(ex, "Exception in ReportPivotState.Index \n {0} ");
                return(null);
            }
        }
Esempio n. 11
0
        /// <summary>
        /// Return Grid Datail from dailyrecord days
        /// </summary>
        /// <returns></returns>
        public List <GridReportIrrigationUnit> GetGridDailyRecordIrrigationResume()
        {
            #region Local Variables

            List <GridReportIrrigationUnit> lGridIrrigationUnitList = new List <GridReportIrrigationUnit>();
            List <GridReportIrrigationUnit> lGridDailyRecordIrrigationResumeList = new List <GridReportIrrigationUnit>();
            GridReportIrrigationUnit        lGridReportIrrigationUnit            = null;

            string lEffectiveRain;
            string lEffectiveInputWater;
            double lEffectiveRainDouble;
            double lEffectiveInputWaterDouble;
            double lTemperature;
            double lStationTemperatureInDR;

            List <DailyRecord> lDailyRecordList;


            bool lIsUserAdministrator;
            #endregion
            try
            {
                #region Configuration Variables
                DailyRecordConfiguration drc;
                UserConfiguration        uc;
                FarmConfiguration        fc;
                #endregion

                #region userdata
                User           lLoggedUser;
                LoginViewModel lLoginViewModel;
                uc = new UserConfiguration();

                LoginViewModel localLgM = ManageSession.GetLoginViewModel();
                lLoginViewModel = ManageSession.GetLoginViewModel();
                lLoggedUser     = uc.GetUserByName(lLoginViewModel.UserName);

                lIsUserAdministrator = (lLoggedUser.RoleId == (int)Utils.UserRoles.Administrator);
                #endregion

                #region Configuration - Instance
                uc  = new UserConfiguration();
                drc = new DailyRecordConfiguration();
                fc  = new FarmConfiguration();
                #endregion

                lCurrentFarm = fc.GetFarmBy(ciwId);

                lDailyRecordList = drc.GetDailyRecordsListWithTemperatureDataUntilDateBy(ciwId, Utils.GetDateOfReference().Value);

                foreach (var lDailyRecordItem in lDailyRecordList)
                {
                    lEffectiveRain             = "";
                    lEffectiveInputWater       = "";
                    lEffectiveRainDouble       = 0;
                    lEffectiveInputWaterDouble = 0;

                    if (lDailyRecordItem.Rain != null)
                    {
                        lEffectiveRainDouble = lDailyRecordItem.Rain.ExtraInput + lDailyRecordItem.Rain.Input;
                    }

                    if (lDailyRecordItem.Irrigation != null)
                    {
                        lEffectiveInputWaterDouble = lDailyRecordItem.Irrigation.ExtraInput + lDailyRecordItem.Irrigation.Input;
                    }
                    if (lEffectiveRainDouble + lEffectiveInputWaterDouble > 0) // not input
                    {
                        if (lEffectiveRainDouble != 0)
                        {
                            lEffectiveRain = lEffectiveRainDouble.ToString();
                        }
                        if (lEffectiveInputWaterDouble != 0)
                        {
                            lEffectiveInputWater = lEffectiveInputWaterDouble.ToString();
                        }

                        #region temperature to show

                        if (lDailyRecordItem.MainWeatherDataId > 0) // Get temperature from MainWeatherDataId
                        {
                            lStationTemperatureInDR = lDailyRecordItem.MainWeatherDataId;
                        }
                        else
                        {
                            lStationTemperatureInDR = lDailyRecordItem.AlternativeWeatherDataId;
                        }

                        lTemperature = db.WeatherDatas
                                       .Where(wd => wd.WeatherDataId == lStationTemperatureInDR)
                                       .Select(wd => wd.Temperature).FirstOrDefault();
                        #endregion

                        lGridReportIrrigationUnit = new GridReportIrrigationUnit(lDailyRecordItem.DaysAfterSowing.ToString(),
                                                                                 lDailyRecordItem.DailyRecordDateTime.ToShortDateString(),
                                                                                 lEffectiveRain,
                                                                                 lEffectiveInputWater,
                                                                                 lTemperature.ToString(),
                                                                                 lDailyRecordItem.TotalEvapotranspirationCrop.ToString(),
                                                                                 lDailyRecordItem.PercentageOfHydricBalance.ToString(),
                                                                                 lDailyRecordItem.PhenologicalStage.Stage.ShortName,
                                                                                 lDailyRecordItem.CropCoefficient.ToString(),
                                                                                 lCurrentFarm.IrrigationUnitReportShowEvapotranspiration, lCurrentFarm.IrrigationUnitReportShowTemperature, lCurrentFarm.IrrigationUnitReportShowAvailableWater,
                                                                                 lIsUserAdministrator);

                        lGridDailyRecordIrrigationResumeList.Add(lGridReportIrrigationUnit);
                    }
                }
            }


            catch (Exception ex)
            {
                Utils.LogError(ex, "Exception in ReportIrrigationUnit.GetGridDailyRecordIrrigationResume \n {0} ");
                return(null);
            }

            return(lGridDailyRecordIrrigationResumeList);
        }
 public CollaboratorLogin(ManageSession manageSession)
 {
     _manageSession = manageSession;
 }