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(); } }
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)); }
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 } }
public ActionResult Index() { IrrigationAdvisorContext.Instance(); return(View("~/Views/Reports/CropIrrigationWeathersActive/CropIrrigationWeathersActive.cshtml")); }
/// <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); }
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 }
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); } }