示例#1
0
 public Status GetStatus(string pName)
 {
     db = new IrrigationAdvisorContext(); // Refresh the context.
     return((from s in db.Status
             where s.Name.Equals(pName)
             select s).FirstOrDefault());
 }
        public static void InsertTemperatureData()
        {
            Region lRegion = null;

            using (var context = new IrrigationAdvisorContext())
            {
                #region Base
                var lBase = new TemperatureData
                {
                    Name     = "noname",
                    Date     = Utils.MIN_DATETIME,
                    RegionId = 0,
                    Min      = 0,
                    Max      = 0,
                    Average  = 0,
                    ETC      = 0,
                    Rain     = 0,
                };
                #endregion

                #region South
                lRegion = (from region in context.Regions
                           where region.Name == Utils.NameRegionSouth
                           select region).FirstOrDefault();
                //DataEntryDataTemperatures.DataTemperatures_South_2014(context, lRegion);
                if (Program.ProcessFarm == Utils.IrrigationAdvisorProcessFarm.Demo)
                {
                    DataEntryDataTemperatures.DataTemperatures_South_2015(context, lRegion);
                }

                DataEntryDataTemperatures.DataTemperatures_South_2016(context, lRegion);

                DataEntryDataTemperatures.DataTemperatures_South_2017(context, lRegion);

                DataEntryDataTemperatures.DataTemperatures_South_2018(context, lRegion);

                #endregion

                #region North
                lRegion = (from region in context.Regions
                           where region.Name == Utils.NameRegionNorth
                           select region).FirstOrDefault();
                //DataEntryDataTemperatures.DataTemperatures_North_2014(context, lRegion);
                if (Program.ProcessFarm == Utils.IrrigationAdvisorProcessFarm.Demo)
                {
                    DataEntryDataTemperatures.DataTemperatures_North_2015(context, lRegion);
                }

                DataEntryDataTemperatures.DataTemperatures_North_2016(context, lRegion);

                DataEntryDataTemperatures.DataTemperatures_North_2017(context, lRegion);

                DataEntryDataTemperatures.DataTemperatures_North_2018(context, lRegion);

                #endregion

                //context.TemperatureDatas.Add(lBase);
                context.SaveChanges();
            }
        }
示例#3
0
        public static void InsertLanguages()
        {
            var lBase = new Language
            {
                Name = Utils.NameBase,
            };

            var lSpanish = new Language
            {
                Name = Utils.NameLanguageSpanish,
            };

            var lEnglish = new Language
            {
                Name = Utils.NameLanguageEnglish,
            };

            using (var context = new IrrigationAdvisorContext())
            {
                //context.Languages.Add(lBase);
                context.Languages.Add(lSpanish);
                context.Languages.Add(lEnglish);
                context.SaveChanges();
            }
        }
        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));
        }
示例#5
0
        public static void InsertStatus()
        {
            var lDefaultStatus = new Status()
            {
                StatusId        = 0,
                Name            = "Default",
                DateOfReference = Utils.MIN_DATETIME,
                WebStatus       = Utils.IrrigationAdvisorWebStatus.WithNoData,
                Description     = "Default Web Status",
            };

            var lProductionStatus = new Status()
            {
                StatusId        = 1,
                Name            = "Production",
                DateOfReference = Program.DateOfReference, // new DateTime(2016, 10, 13),
                WebStatus       = Utils.IrrigationAdvisorWebStatus.Online,
                Description     = "Web Status of Production",
            };

            var lDemoStatus = new Status()
            {
                StatusId        = 2,
                Name            = "Demo",
                DateOfReference = Program.DateOfReference, // new DateTime(2016, 10, 13),
                WebStatus       = Utils.IrrigationAdvisorWebStatus.Online,
                Description     = "Web Status of Demo",
            };

            using (var context = new IrrigationAdvisorContext())
            {
                context.Status.Add(lDefaultStatus);
                context.Status.Add(lProductionStatus);
                context.Status.Add(lDemoStatus);
                context.SaveChanges();
            }
        }
        public static void AddTemperatureDataToRegion()
        {
            Region lRegion = null;
            List <TemperatureData> lTemperatureDataList = null;

            using (var context = new IrrigationAdvisorContext())
            {
                #region South
                lRegion = (from region in context.Regions
                           where region.Name == Utils.NameRegionSouth
                           select region).FirstOrDefault();

                lTemperatureDataList = (from temperaturedata in context.TemperatureDatas
                                        where temperaturedata.Name.StartsWith(Utils.NameRegionSouth)
                                        select temperaturedata)
                                       .ToList <TemperatureData>();

                lRegion.TemperatureDataList = lTemperatureDataList;
                context.SaveChanges();
                #endregion

                #region North
                lRegion = (from region in context.Regions
                           where region.Name == Utils.NameRegionNorth
                           select region).FirstOrDefault();

                lTemperatureDataList = (from temperaturedata in context.TemperatureDatas
                                        where temperaturedata.Name.StartsWith(Utils.NameRegionNorth)
                                        select temperaturedata)
                                       .ToList <TemperatureData>();


                lRegion.TemperatureDataList = lTemperatureDataList;
                context.SaveChanges();
                #endregion
            }
        }
示例#7
0
 public ActionResult Index()
 {
     IrrigationAdvisorContext.Instance();
     return(View("~/Views/Reports/CropIrrigationWeathersActive/CropIrrigationWeathersActive.cshtml"));
 }
示例#8
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);
        }
        public static void WetherStationsAddInformationOfWeather()
        {
#if false
            #region LasBrujas 2007
            using (var context = new IrrigationAdvisorContext())
            {
                DataEntry.WeatherDataLasBrujas_2007(context);
                context.SaveChanges();
            }
            #endregion

            #region LasBrujas 2008
            using (var context = new IrrigationAdvisorContext())
            {
                DataEntry.WeatherDataLasBrujas_2008(context);
                context.SaveChanges();
            }
            #endregion

            #region LasBrujas 2009
            using (var context = new IrrigationAdvisorContext())
            {
                DataEntry.WeatherDataLasBrujas_2009(context);
                context.SaveChanges();
            }
            #endregion

            #region LasBrujas 2010
            using (var context = new IrrigationAdvisorContext())
            {
                DataEntry.WeatherDataLasBrujas_2010(context);
                context.SaveChanges();
            }
            #endregion

            #region LasBrujas 2011
            using (var context = new IrrigationAdvisorContext())
            {
                DataEntry.WeatherDataLasBrujas_2011(context);
                context.SaveChanges();
            }
            #endregion

            #region LasBrujas 2012
            using (var context = new IrrigationAdvisorContext())
            {
                DataEntry.WeatherDataLasBrujas_2012(context);
                context.SaveChanges();
            }
            #endregion

            #region LasBrujas 2013
            using (var context = new IrrigationAdvisorContext())
            {
                DataEntry.WeatherDataLasBrujas_2013(context);
                context.SaveChanges();
            }
            #endregion

            #region LasBrujas 2014
            using (var context = new IrrigationAdvisorContext())
            {
                DataEntry.WeatherDataLasBrujas_2014(context);
                context.SaveChanges();
            }
            #endregion
#endif

            if (Program.ProcessFarm == Utils.IrrigationAdvisorProcessFarm.Demo)
            {
                #region LasBrujas 2015
                using (var context = new IrrigationAdvisorContext())
                {
                    DataEntryWeatherData.WeatherDataLasBrujas_2015(context);
                    context.SaveChanges();
                }
                #endregion
                #region SaltoGrande 2015
                using (var context = new IrrigationAdvisorContext())
                {
                    DataEntryWeatherData.WeatherDataSaltoGrande_2015(context);
                    context.SaveChanges();
                }
                #endregion
                #region LaEstuanzuela 2015
                using (var context = new IrrigationAdvisorContext())
                {
                    DataEntryWeatherData.WeatherDataLaEstanzuela_2015(context);
                    context.SaveChanges();
                }
                #endregion
            }

            #region LasBrujas 2016-2018
            using (var context = new IrrigationAdvisorContext())
            {
                DataEntryWeatherData.WeatherDataLasBrujas_2016(context);
                DataEntryWeatherData.WeatherDataLasBrujas_2017(context);
                DataEntryWeatherData.WeatherDataLasBrujas_2018(context);
                DataEntryWeatherData.WeatherDataLasBrujas_Prediction(context);
                context.SaveChanges();
            }
            #endregion

            #region LaEstuanzuela 2016-2018
            using (var context = new IrrigationAdvisorContext())
            {
                DataEntryWeatherData.WeatherDataLaEstanzuela_2016(context);
                DataEntryWeatherData.WeatherDataLaEstanzuela_2017(context);
                DataEntryWeatherData.WeatherDataLaEstanzuela_2018(context);
                DataEntryWeatherData.WeatherDataLaEstanzuela_Prediction(context);
                context.SaveChanges();
            }
            #endregion

            #region SaltoGrande 2016-2018
            using (var context = new IrrigationAdvisorContext())
            {
                DataEntryWeatherData.WeatherDataSaltoGrande_2016(context);
                DataEntryWeatherData.WeatherDataSaltoGrande_2017(context);
                DataEntryWeatherData.WeatherDataSaltoGrande_2018(context);
                DataEntryWeatherData.WeatherDataSaltoGrande_Prediction(context);
                context.SaveChanges();
            }
            #endregion
        }
        public static void InsertWeatherStationsINIA()
        {
            Position lPosition = null;

            using (var context = new IrrigationAdvisorContext())
            {
                #region Base
                var lBase = new WeatherStation
                {
                    Name                 = Utils.NameBase,
                    Model                = "",
                    StationType          = Utils.WeatherStationType.NOWebInformation,
                    DateOfInstallation   = Utils.MIN_DATETIME,
                    DateOfService        = Utils.MAX_DATETIME,
                    UpdateTime           = Utils.MAX_DATETIME,
                    WirelessTransmission = 0,
                    PositionId           = 0,
                    GiveET               = false,
                    WeatherDataList      = null,
                    WeatherDataType      = Utils.WeatherDataType.NoData,
                    WebAddress           = "",
                };
                #endregion

                #region Las Brujas

                /* CONTACTO
                 * Estación Experimental "Wilson Ferreira Aldunate"
                 * Ruta 48 Km. 10. Rincón del Colorado, Canelones, Uruguay. CP. 90.200
                 * Tel: +598 23677641
                 * Correo electrónico: [email protected]
                 */

                lPosition = (from pos in context.Positions
                             where pos.Name == Utils.NamePositionWeatherStationLasBrujas
                             select pos).FirstOrDefault();
                var lLasBrujasWS = new WeatherStation
                {
                    Name                 = Utils.NameWeatherStationLasBrujas,
                    Model                = "Estación Experimental Wilson Ferreira Aldunate",
                    StationType          = Utils.WeatherStationType.INIA,
                    DateOfInstallation   = Utils.MIN_DATETIME,
                    DateOfService        = Utils.MAX_DATETIME,
                    UpdateTime           = DateTime.Now,
                    WirelessTransmission = 0,
                    PositionId           = lPosition.PositionId,
                    GiveET               = true,
                    WeatherDataList      = null,
                    WeatherDataType      = Utils.WeatherDataType.AllData,
                    WebAddress           = "",
                };

                #endregion

                #region La Estanzuela

                /*
                 * Contáctenos:
                 * INIA La Estanzuela
                 * Ruta 50, Km. 11
                 * Colonia, Uruguay
                 * Tel.: 598 4574 8000
                 * Fax: 598 4574 8012
                 * E-mail: [email protected]
                 */

                lPosition = (from pos in context.Positions
                             where pos.Name == Utils.NamePositionWeatherStationLaEstanzuela
                             select pos).FirstOrDefault();
                var lLaEstanzuelaWS = new WeatherStation
                {
                    Name                 = Utils.NameWeatherStationLaEstanzuela,
                    Model                = "INIA La Estanzuela",
                    StationType          = Utils.WeatherStationType.INIA,
                    DateOfInstallation   = Utils.MIN_DATETIME,
                    DateOfService        = Utils.MAX_DATETIME,
                    UpdateTime           = DateTime.Now,
                    WirelessTransmission = 0,
                    PositionId           = lPosition.PositionId,
                    GiveET               = true,
                    WeatherDataList      = null,
                    WeatherDataType      = Utils.WeatherDataType.AllData,
                    WebAddress           = "",
                };
                #endregion

                #region Salto Grande

                /*
                 * Contáctenos:
                 * INIA Salto Grande
                 * Camino al Terrible
                 * Salto, Uruguay
                 * Tel.: 598 47335156
                 * Fax: 598 47329624
                 * [email protected]
                 * www.inia.uy
                 */

                lPosition = (from pos in context.Positions
                             where pos.Name == Utils.NamePositionWeatherStationSaltoGrande
                             select pos).FirstOrDefault();
                var lSaltoGrandeWS = new WeatherStation
                {
                    Name                 = Utils.NameWeatherStationSaltoGrande,
                    Model                = "INIA Salto Grande",
                    StationType          = Utils.WeatherStationType.INIA,
                    DateOfInstallation   = new DateTime(2015, 10, 01),
                    DateOfService        = new DateTime(2015, 10, 01).AddMonths(6),
                    UpdateTime           = DateTime.Now,
                    WirelessTransmission = 0,
                    PositionId           = lPosition.PositionId,
                    GiveET               = true,
                    WeatherDataList      = null,
                    WeatherDataType      = Utils.WeatherDataType.AllData,
                    WebAddress           = "",
                };
                #endregion

                #region Tacuarembo

                /*
                 * Contáctenos:
                 *  INIA Tacuarembó
                 *  Ruta 5 Km. 386 - Tacuarembó
                 *  Tel.: 598 4632 2407
                 *  Fax: 598 4632 3969
                 *  E-mail: [email protected] - [email protected]
                 *  www.inia.uy
                 */
                lPosition = (from pos in context.Positions
                             where pos.Name == Utils.NamePositionWeatherStationTacuarembo
                             select pos).FirstOrDefault();
                var lTacuaremboWS = new WeatherStation
                {
                    Name                 = Utils.NameWeatherStationTacuarembo,
                    Model                = "INIA Tacuarembó",
                    StationType          = Utils.WeatherStationType.INIA,
                    DateOfInstallation   = new DateTime(2015, 10, 01),
                    DateOfService        = new DateTime(2015, 10, 01).AddMonths(6),
                    UpdateTime           = DateTime.Now,
                    WirelessTransmission = 0,
                    PositionId           = lPosition.PositionId,
                    GiveET               = true,
                    WeatherDataList      = null,
                    WeatherDataType      = Utils.WeatherDataType.AllData,
                    WebAddress           = "",
                };
                #endregion

                #region SantaLucia
                lPosition = (from pos in context.Positions
                             where pos.Name == Utils.NamePositionWeatherStationSantaLucia
                             select pos).FirstOrDefault();
                var lSantaLuciaWS = new WeatherStation
                {
                    Name                 = Utils.NameWeatherStationSantaLucia,
                    Model                = "INIA Santa Lucia",
                    StationType          = Utils.WeatherStationType.INIA,
                    DateOfInstallation   = new DateTime(2015, 10, 01),
                    DateOfService        = new DateTime(2015, 10, 01).AddMonths(6),
                    UpdateTime           = DateTime.Now,
                    WirelessTransmission = 0,
                    PositionId           = lPosition.PositionId,
                    GiveET               = true,
                    WeatherDataList      = null,
                    WeatherDataType      = Utils.WeatherDataType.AllData,
                    WebAddress           = "",
                };
                #endregion

                //context.WeatherStations.Add(lBase);
                context.WeatherStations.Add(lLasBrujasWS);
                context.WeatherStations.Add(lLaEstanzuelaWS);
                context.WeatherStations.Add(lSaltoGrandeWS);
                context.WeatherStations.Add(lTacuaremboWS);
                context.WeatherStations.Add(lSantaLuciaWS);
                context.SaveChanges();
            };
        }
        public static void InsertWeatherStationsWeatherLink()
        {
            Position lPosition = null;

            using (var context = new IrrigationAdvisorContext())
            {
                #region Base
                var lBase = new WeatherStation
                {
                    Name                 = Utils.NameBase,
                    Model                = "",
                    StationType          = Utils.WeatherStationType.NOWebInformation,
                    DateOfInstallation   = Utils.MIN_DATETIME,
                    DateOfService        = Utils.MAX_DATETIME,
                    UpdateTime           = Utils.MAX_DATETIME,
                    WirelessTransmission = 0,
                    PositionId           = 0,
                    GiveET               = false,
                    WeatherDataList      = null,
                    WeatherDataType      = Utils.WeatherDataType.NoData,
                    WebAddress           = "",
                };
                #endregion

                /*
                 *  La Tribu - florida
                 *  El Cure – rocha
                 *  JCS Servicios - ruta 2 Soriano
                 *  Maria Elena - Young
                 *  El Retiro - Paysandu
                 *  Zanja Honda - Salto
                 * "http://www.weatherlink.com/user/latribu/index.php?view=summary&headers=1&type=1",
                 * "http://www.weatherlink.com/user/lagunaderocha/index.php?view=summary&headers=1&type=1",
                 * "http://www.weatherlink.com/user/jcservicios/index.php?view=summary&headers=1&type=1",
                 * "http://www.weatherlink.com/user/mariaelena/index.php?view=summary&headers=1&type=1",
                 * "http://www.weatherlink.com/user/elretiro/index.php?view=summary&headers=1&type=1",
                 * "http://www.weatherlink.com/user/noridelzh/index.php?view=summary&headers=1&type=1"
                 */

                #region La Tribu - Florida

                lPosition = (from pos in context.Positions
                             where pos.Name == Utils.NamePositionWeatherStationLaTribu
                             select pos).FirstOrDefault();
                var lLaTribuWS = new WeatherStation
                {
                    Name                 = Utils.NameWeatherStationLaTribu,
                    Model                = "Estación La Tribu",
                    StationType          = Utils.WeatherStationType.WeatherLink,
                    DateOfInstallation   = Utils.MIN_DATETIME,
                    DateOfService        = Utils.MAX_DATETIME,
                    UpdateTime           = DateTime.Now,
                    WirelessTransmission = 0,
                    PositionId           = lPosition.PositionId,
                    GiveET               = true,
                    WeatherDataList      = null,
                    WeatherDataType      = Utils.WeatherDataType.AllData,
                    WebAddress           = "http://www.weatherlink.com/user/latribu/index.php?view=summary&headers=1&type=1",
                };

                #endregion

                #region El Cure – Rocha

                lPosition = (from pos in context.Positions
                             where pos.Name == Utils.NamePositionWeatherStationElCure
                             select pos).FirstOrDefault();
                var lElCureWS = new WeatherStation
                {
                    Name                 = Utils.NameWeatherStationElCure,
                    Model                = "Estacion Las Garzas CURE-UdelaR",
                    StationType          = Utils.WeatherStationType.WeatherLink,
                    DateOfInstallation   = Utils.MIN_DATETIME,
                    DateOfService        = Utils.MAX_DATETIME,
                    UpdateTime           = DateTime.Now,
                    WirelessTransmission = 0,
                    PositionId           = lPosition.PositionId,
                    GiveET               = true,
                    WeatherDataList      = null,
                    WeatherDataType      = Utils.WeatherDataType.AllData,
                    WebAddress           = "http://www.weatherlink.com/user/lagunaderocha/index.php?view=summary&headers=1&type=1",
                };
                #endregion

                #region JC Servicios - ruta 2 Soriano

                lPosition = (from pos in context.Positions
                             where pos.Name == Utils.NamePositionWeatherStationJCServicios
                             select pos).FirstOrDefault();
                var lJCServiciosWS = new WeatherStation
                {
                    Name                 = Utils.NameWeatherStationJCServicios,
                    Model                = "JCServicios",
                    StationType          = Utils.WeatherStationType.WeatherLink,
                    DateOfInstallation   = Utils.MIN_DATETIME,
                    DateOfService        = Utils.MAX_DATETIME,
                    UpdateTime           = DateTime.Now,
                    WirelessTransmission = 0,
                    PositionId           = lPosition.PositionId,
                    GiveET               = true,
                    WeatherDataList      = null,
                    WeatherDataType      = Utils.WeatherDataType.AllData,
                    WebAddress           = "http://www.weatherlink.com/user/jcservicios/index.php?view=summary&headers=1&type=1",
                };
                #endregion

                #region Maria Elena - Young

                lPosition = (from pos in context.Positions
                             where pos.Name == Utils.NamePositionWeatherStationMariaElena
                             select pos).FirstOrDefault();
                var lMariaElenaWS = new WeatherStation
                {
                    Name                 = Utils.NameWeatherStationMariaElena,
                    Model                = "Maria Elena",
                    StationType          = Utils.WeatherStationType.WeatherLink,
                    DateOfInstallation   = Utils.MIN_DATETIME,
                    DateOfService        = Utils.MAX_DATETIME,
                    UpdateTime           = DateTime.Now,
                    WirelessTransmission = 0,
                    PositionId           = lPosition.PositionId,
                    GiveET               = true,
                    WeatherDataList      = null,
                    WeatherDataType      = Utils.WeatherDataType.AllData,
                    //2016-10-27 not used, does not have good data
                    //WebAddress = "http://www.weatherlink.com/user/mariaelena/index.php?view=summary&headers=1&type=1",
                };
                #endregion

                #region El Retiro - Paysandu
                lPosition = (from pos in context.Positions
                             where pos.Name == Utils.NamePositionWeatherStationElRetiro
                             select pos).FirstOrDefault();
                var lElRetiroWS = new WeatherStation
                {
                    Name                 = Utils.NameWeatherStationElRetiro,
                    Model                = "El Retiro",
                    StationType          = Utils.WeatherStationType.WeatherLink,
                    DateOfInstallation   = Utils.MIN_DATETIME,
                    DateOfService        = Utils.MAX_DATETIME,
                    UpdateTime           = DateTime.Now,
                    WirelessTransmission = 0,
                    PositionId           = lPosition.PositionId,
                    GiveET               = true,
                    WeatherDataList      = null,
                    WeatherDataType      = Utils.WeatherDataType.AllData,
                    WebAddress           = "http://www.weatherlink.com/user/elretiro/index.php?view=summary&headers=1&type=1",
                };
                #endregion

                #region Zanja Honda - Salto
                lPosition = (from pos in context.Positions
                             where pos.Name == Utils.NamePositionWeatherStationZanjaHonda
                             select pos).FirstOrDefault();
                var lZanjaHondaWS = new WeatherStation
                {
                    Name                 = Utils.NameWeatherStationZanjaHonda,
                    Model                = "Noridel S.A. Zanja Honda",
                    StationType          = Utils.WeatherStationType.WeatherLink,
                    DateOfInstallation   = Utils.MIN_DATETIME,
                    DateOfService        = Utils.MAX_DATETIME,
                    UpdateTime           = DateTime.Now,
                    WirelessTransmission = 0,
                    PositionId           = lPosition.PositionId,
                    GiveET               = true,
                    WeatherDataList      = null,
                    WeatherDataType      = Utils.WeatherDataType.AllData,
                    WebAddress           = "http://www.weatherlink.com/user/noridelzh/index.php?view=summary&headers=1&type=1",
                };
                #endregion

                #region Estacion vieja
                lPosition = (from pos in context.Positions
                             where pos.Name == Utils.NamePositionWeatherStationEstacionVieja
                             select pos).FirstOrDefault();

                var lEstacionVieja = new WeatherStation
                {
                    Name                 = Utils.NameWeatherStationEstacionVieja,
                    Model                = "Estación vieja",
                    StationType          = Utils.WeatherStationType.WeatherLink,
                    DateOfInstallation   = Utils.MIN_DATETIME,
                    DateOfService        = Utils.MAX_DATETIME,
                    UpdateTime           = DateTime.Now,
                    WirelessTransmission = 0,
                    PositionId           = lPosition.PositionId,
                    GiveET               = true,
                    WeatherDataList      = null,
                    WeatherDataType      = Utils.WeatherDataType.AllData,
                    //2016-10-27 not used, does not have good data
                    //WebAddress = "http://www.weatherlink.com/user/eavieja/index.php?view=summary&headers=1&type=1",
                };
                #endregion

                #region San Fernando
                lPosition = (from pos in context.Positions
                             where pos.Name == Utils.NamePositionWeatherStationSanFernando
                             select pos).FirstOrDefault();

                var lSanFernando = new WeatherStation
                {
                    Name                 = Utils.NameWeatherStationSanFernando,
                    Model                = "San Fernando",
                    StationType          = Utils.WeatherStationType.WeatherLink,
                    DateOfInstallation   = Utils.MIN_DATETIME,
                    DateOfService        = Utils.MAX_DATETIME,
                    UpdateTime           = DateTime.Now,
                    WirelessTransmission = 0,
                    PositionId           = lPosition.PositionId,
                    GiveET               = true,
                    WeatherDataList      = null,
                    WeatherDataType      = Utils.WeatherDataType.AllData,
                    WebAddress           = "http://www.weatherlink.com/user/sanfernando/index.php?view=summary&headers=1&type=1",
                };

                #endregion

                #region Los Olivos
                lPosition = (from pos in context.Positions
                             where pos.Name == Utils.NamePositionWeatherStationLosOlivos
                             select pos).FirstOrDefault();

                var lLosOlivos = new WeatherStation
                {
                    Name                 = Utils.NameWeatherStationLosOlivos,
                    Model                = "Los Olivos",
                    StationType          = Utils.WeatherStationType.WeatherLink,
                    DateOfInstallation   = Utils.MIN_DATETIME,
                    DateOfService        = Utils.MAX_DATETIME,
                    UpdateTime           = DateTime.Now,
                    WirelessTransmission = 0,
                    PositionId           = lPosition.PositionId,
                    GiveET               = true,
                    WeatherDataList      = null,
                    WeatherDataType      = Utils.WeatherDataType.AllData,
                    WebAddress           = "http://www.weatherlink.com/user/losolivos/index.php?view=summary&headers=1&type=1",
                };
                #endregion

                #region Vivero San Francisco
                lPosition = (from pos in context.Positions
                             where pos.Name == Utils.NamePositionWeatherStationViveroSanFrancisco
                             select pos).FirstOrDefault();

                var lSanFrancisco = new WeatherStation
                {
                    Name                 = Utils.NameWeatherStationViveroSanFrancisco,
                    Model                = "Vivero San Francisco",
                    StationType          = Utils.WeatherStationType.WeatherLink,
                    DateOfInstallation   = Utils.MIN_DATETIME,
                    DateOfService        = Utils.MAX_DATETIME,
                    UpdateTime           = DateTime.Now,
                    WirelessTransmission = 0,
                    PositionId           = lPosition.PositionId,
                    GiveET               = true,
                    WeatherDataList      = null,
                    WeatherDataType      = Utils.WeatherDataType.AllData,
                    WebAddress           = "http://www.weatherlink.com/user/sanfrancisco/index.php?view=summary&headers=1&type=1",
                };
                #endregion

                //context.WeatherStations.Add(lBase);
                context.WeatherStations.Add(lLaTribuWS);
                context.WeatherStations.Add(lElCureWS);
                context.WeatherStations.Add(lJCServiciosWS);
                context.WeatherStations.Add(lMariaElenaWS);
                context.WeatherStations.Add(lElRetiroWS);
                context.WeatherStations.Add(lZanjaHondaWS);
                context.WeatherStations.Add(lEstacionVieja);
                context.WeatherStations.Add(lSanFernando);
                context.WeatherStations.Add(lLosOlivos);
                context.WeatherStations.Add(lSanFrancisco);
                context.SaveChanges();
            };
        }
        /// <summary>
        /// Add Grid Irrigation Unit with all columns data
        /// Using DailyRecords for obtain Irrigation, Rain information.
        /// </summary>
        /// <param name="pDayOfReference"></param>
        /// <param name="pDayOfData"></param>
        /// <param name="pIrrigationList"></param>
        /// <param name="pRainList"></param>
        /// <param name="pDailyRecordList"></param>
        /// <returns></returns>
        private GridPivotDetailHome AddGridIrrigationUnit(DateTime pDayOfReference, DateTime pDayOfData, List <Models.Water.Irrigation> pIrrigationList,
                                                          List <Rain> pRainList, List <DailyRecord> pDailyRecordList)
        {
            #region local variables
            String lSomeData            = "";
            GridPivotDetailHome lReturn = null;

            Double   lIrrigationQuantity        = 0;
            Double   lRainQuantity              = 0;
            Double   lForcastIrrigationQuantity = 0;
            Double   lWaterQuantity             = 0;
            DateTime lDateOfData     = Utils.MIN_DATETIME;
            DateTime lDayOfReference = Utils.MIN_DATETIME;
            bool     lIsToday        = false;
            Utils.IrrigationStatus lIrrigationStatus = Utils.IrrigationStatus.Default;
            String lPhenology = "";

            Rain        lRain        = null;
            DailyRecord lDailyRecord = null;
            #endregion

            try
            {
                lDateOfData     = pDayOfData.Date;
                lDayOfReference = pDayOfReference.Date;
                lSomeData       = lSomeData + "DayOfReference: " + lDayOfReference.Date + "-";
                lSomeData       = lSomeData + "DateOfData: " + lDateOfData.Date + "-";

                //Find Daily Record of the Date of Data
                lDailyRecord = pDailyRecordList.Where(dr => dr.DailyRecordDateTime.Date == lDateOfData.Date).FirstOrDefault();

                #region Irrigation in the past
                if (lDailyRecord != null && lDateOfData < lDayOfReference)
                {
                    if (lDailyRecord.Irrigation != null && lDailyRecord.Irrigation.Input > 0)
                    {
                        lIrrigationQuantity += lDailyRecord.Irrigation.Input;
                    }
                    else if (lDailyRecord.Irrigation != null && lDailyRecord.Irrigation.ExtraInput > 0)
                    {
                        lIrrigationQuantity += lDailyRecord.Irrigation.ExtraInput;
                    }
                }
                #endregion

                lWaterQuantity = lIrrigationQuantity;
                lSomeData      = lSomeData + "IrrigationQuantity: " + lIrrigationQuantity + "-";

                #region Rain
                //Find Rain of the Date of Data
                lRain = pRainList.Where(r => r.Date.Date == lDateOfData || r.ExtraDate.Date == lDateOfData).FirstOrDefault();
                if (lRain != null && lRain.GetTotalInput() > 0)
                {
                    lRainQuantity = lRain.GetTotalInput();
                }
                #endregion

                lWaterQuantity += lRainQuantity;
                lSomeData       = lSomeData + "RainQuantity: " + lRainQuantity + "-";

                #region Irrigation for today or in the future
                //Find Daily Record of the Date of Data
                lDailyRecord = pDailyRecordList.Where(dr => dr.DailyRecordDateTime.Date == lDateOfData).FirstOrDefault();
                if (lDailyRecord != null && lDateOfData >= lDayOfReference)
                {
                    if (lDailyRecord.Irrigation != null && lDailyRecord.Irrigation.Input > 0)
                    {
                        lForcastIrrigationQuantity += lDailyRecord.Irrigation.Input;
                    }
                    else if (lDailyRecord.Irrigation != null && lDailyRecord.Irrigation.ExtraInput > 0)
                    {
                        lForcastIrrigationQuantity += lDailyRecord.Irrigation.ExtraInput;
                    }
                }
                #endregion

                lWaterQuantity += lForcastIrrigationQuantity;
                lSomeData       = lSomeData + "ForcastIrrigationQuantity: " + lForcastIrrigationQuantity + "-";

                lIsToday = lDateOfData == lDayOfReference;

                if (lIsToday && lDailyRecord != null)
                {
                    lPhenology = lDailyRecord.PhenologicalStage.Stage.ShortName;
                }

                #region IrrigationStatus
                if (lRainQuantity > 0 && lRainQuantity >= (lWaterQuantity - lRainQuantity))
                {
                    lIrrigationStatus = Utils.IrrigationStatus.Rain;
                }
                else if (lIrrigationQuantity > 0 && lIrrigationQuantity > lRainQuantity)
                {
                    lIrrigationStatus = Utils.IrrigationStatus.Irrigated;
                }
                else if (lForcastIrrigationQuantity > 0 && lForcastIrrigationQuantity > lRainQuantity)
                {
                    lIrrigationStatus = Utils.IrrigationStatus.NextIrrigation;
                }
                else if (lDailyRecord != null && (lDailyRecord.Irrigation != null && lDailyRecord.Irrigation.Type == Utils.WaterInputType.CantIrrigate))
                {
                    lIrrigationStatus = Utils.IrrigationStatus.CantIrrigate;
                }
                else if (lDailyRecord != null && (lDailyRecord.Irrigation != null && lDailyRecord.Irrigation.Type == Utils.WaterInputType.IrrigationWasNotDecided))
                {
                    lIrrigationStatus = Utils.IrrigationStatus.IrrigationWasNotDecided;
                }
                else
                {
                    lIrrigationStatus = Utils.IrrigationStatus.Default;
                }
                #endregion

                lSomeData = lSomeData + "IrrigationStatus: " + lIrrigationStatus.ToString() + "-";

                var lContext = IrrigationAdvisorContext.Instance();

                bool lIsIrrigationConfirmated = false;

                if (lDailyRecord.Irrigation != null && (lDailyRecord.Irrigation.Type == Utils.WaterInputType.IrrigationByETCAcumulated || lDailyRecord.Irrigation.Type == Utils.WaterInputType.IrrigationByHydricBalance))
                {
                    lIsIrrigationConfirmated = lContext
                                               .Irrigations
                                               .Where(n => n.Type == Utils.WaterInputType.Confirmation && n.ExtraDate == lDateOfData && n.CropIrrigationWeatherId == lDailyRecord.CropIrrigationWeatherId)
                                               .Any();
                }
                else
                {
                    lIsIrrigationConfirmated = true;
                }

                lReturn = new GridPivotDetailHome(lIrrigationQuantity, lRainQuantity, lForcastIrrigationQuantity,
                                                  lDateOfData, lIsToday, lIrrigationStatus,
                                                  lPhenology, lIsIrrigationConfirmated, lDailyRecord);
            }
            catch (Exception ex)
            {
                Utils.LogError(ex, "Exception in HomeController.AddGridIrrigationUnit \n {0}", lSomeData);
                throw ex;
            }

            return(lReturn);
        }
示例#13
0
        protected override void Seed(IrrigationAdvisorContext context)
        {
            //  This method will be called after migrating to the latest version.

            //  You can use the DbSet<T>.AddOrUpdate() helper extension method
            //  to avoid creating duplicate seed data. E.g.
            //
            //    context.People.AddOrUpdate(
            //      p => p.FullName,
            //      new Person { FullName = "Andrew Peters" },
            //      new Person { FullName = "Brice Lambson" },
            //      new Person { FullName = "Rowan Miller" }
            //    );
            //

            #region 1.-Create Languages
            #if false
            var Languages = new List <Language>
            {
                new Language {
                    LanguageId = 1, Name = "Spanish"
                },
                new Language {
                    LanguageId = 2, Name = "English"
                }
            };

            Languages.ForEach(lan => context.Languages.AddOrUpdate(l => l.LanguageId, lan));
            context.SaveChanges();
            #endif
            #endregion

            #region 2.-Create Positions
            #if false
            var Positions = new List <Position>
            {
                //Uruguay
                new Position {
                    PositionId = 1, Latitude = -32.523, Longitude = -55.766
                },
                //Region Sur
                new Position {
                    PositionId = 2, Latitude = -33.874333, Longitude = -56.009694
                },
                //Region Norte
                new Position {
                    PositionId = 3, Latitude = -31.381117, Longitude = -56.539784
                },
                //Montevideo
                new Position {
                    PositionId = 4, Latitude = -34.9019718, Longitude = -56.1640629
                },
                //Minas
                new Position {
                    PositionId = 5, Latitude = -34.366747, Longitude = -55.233317
                },
                //Santa Lucia
                new Position {
                    PositionId = 6, Latitude = -34.232518, Longitude = -55.541477
                }
            };

            Positions.ForEach(pos => context.Positions.AddOrUpdate(p => p.PositionId, pos));
            context.SaveChanges();
            #endif
            #endregion

            #region 3.-Create Region
            #if false
            var Regions = new List <Region>
            {
                new Region {
                    RegionId          = 1, Name = "Sur", PositionId = 2,
                    EffectiveRainList = null, SpecieList = null
                },
                new Region {
                    RegionId          = 2, Name = "Norte", PositionId = 3,
                    EffectiveRainList = null, SpecieList = null
                }
            };

            Regions.ForEach(reg => context.Regions.AddOrUpdate(r => r.RegionId, reg));
            context.SaveChanges();
            #endif
            #endregion

            #region 4.-Effective Rain List, Initial Tables
            #if false
            Regions[1].EffectiveRainList = InitialTables.CreateEffectiveRainListToSystem();
            context.Regions.AddOrUpdate(Regions[1]);
            context.SaveChanges();
            #endif
            #endregion

            #region 5.-Create Cities
            #if false
            var Cities = new List <City>
            {
                new City {
                    CityId = 1, Name = "Montevideo", PositionId = 1
                },
                new City {
                    CityId = 2, Name = "Minas", PositionId = 2
                }
            };

            Cities.ForEach(c => context.Cities.AddOrUpdate(p => p.CityId, c));
            context.SaveChanges();
            #endif
            #endregion

            #region 6.-Create Country
            #if false
            var Countries = new List <Country>
            {
                new Country {
                    CountryId = 1, Name = "Uruguay", CapitalId = 1, LanguageId = 1
                }
            };

            Countries.ForEach(c => context.Countries.AddOrUpdate(p => p.CountryId, c));
            context.SaveChanges();
            #endif
            #endregion

            #region 7.-Create SpecieCycle
            #if false
            #endif
            #endregion

            #region 8.-Create Specie
            #if false
            var Species = new List <Specie>
            {
                new Specie {
                    SpecieId = 1, Name = "Maiz", BaseTemperature = 10, StressTemperature = 40
                },
                new Specie {
                    SpecieId = 2, Name = "Soja", BaseTemperature = 10, StressTemperature = 40
                },
            };

            Species.ForEach(sp => context.Species.AddOrUpdate(s => s.SpecieId, sp));
            context.SaveChanges();
            #endif
            #endregion

            #region 7.-Add Specie to Region (SpecieList)
            #if false
            List <Specie> lSpecieList = new List <Specie>();
            lSpecieList.Add(Species[1]);
            lSpecieList.Add(Species[2]);
            Regions[1].SpecieList = lSpecieList;
            context.Regions.AddOrUpdate(Regions[1]);
            context.SaveChanges();
            #endif
            #endregion
        }
示例#14
0
        static void Main(string[] args)
        {
            string config = System.Configuration.ConfigurationManager.AppSettings["Status"];

            try
            {
                using (Entities entities = new Entities())
                {
                    bool isExecuting = entities.CalculationByCropIrrigationWeathers
                                       .Any(n => n.IsExecuting);

                    DateTime referenceDate = entities.Status.First(n => n.Name == config).DateOfReference;

                    if (!isExecuting)
                    {
                        logger.Log(LogLevel.Info, "Buscando CIW pendientes de procesar.");

                        var pendings = entities.CalculationByCropIrrigationWeathers
                                       .Where(n => !n.IsCompleted)
                                       .Select(n => n.CropIrrigationWeatherId)
                                       .Distinct()
                                       .ToList();

                        logger.Log(LogLevel.Info, "Fin de búsqueda CIW pendientes de procesar.");

                        var lIrrigationUnitConfiguration = new IrrigationUnitConfiguration();

                        logger.Log(LogLevel.Info, "Buscando los CIW para procesar.");

                        var cropIrrigationWeathers = lIrrigationUnitConfiguration.GetCropIrrigationWeatherListBy(pendings);

                        logger.Log(LogLevel.Info, "Fin de obtención de ciw.");

                        var lIrrigationAdvisorContext = IrrigationAdvisorContext.Instance();

                        if (cropIrrigationWeathers.Any())
                        {
                            Utils.SetStatusAsMaintenaince(config);
                        }

                        foreach (var item in cropIrrigationWeathers)
                        {
                            var executionProcess = entities.CalculationByCropIrrigationWeathers
                                                   .Where(n => n.CropIrrigationWeatherId == item.CropIrrigationWeatherId)
                                                   .ToList();

                            foreach (var e in executionProcess)
                            {
                                e.IsExecuting = true;
                            }

                            entities.SaveChanges();

                            logger.Log(LogLevel.Info, "Procesando CIW " + item.CropIrrigationWeatherId);

                            item.AddInformationToIrrigationUnits(referenceDate.AddDays(-5), referenceDate, lIrrigationAdvisorContext);
                            lIrrigationAdvisorContext.SaveChanges();

                            foreach (var e in executionProcess)
                            {
                                e.IsExecuting = false;
                                e.IsCompleted = true;
                            }

                            entities.SaveChanges();

                            logger.Log(LogLevel.Info, "Fin de procesamiento de CIW " + item.CropIrrigationWeatherId);
                        }

                        logger.Log(LogLevel.Info, "Fin de procesamiento general.");
                    }
                    else
                    {
                        logger.Log(LogLevel.Info, "No se puede comenzar un nuevo procesamiento ya que hay un procesamiento en ejecución.");
                    }
                }
            }
            catch (Exception ex)
            {
                logger.Log(LogLevel.Error, ex);
            }
            finally
            {
                Utils.SetStatusAsOnline(config);
            }
        }