public CollectorsValues GetIndoorCollectors() { var collectorsValues = new CollectorsValues(); var dashboard = _context.Dashboards.Include(t => t.OutdoorCollector.Sensors) .First(); if (dashboard != null) { // Vnitřní senzory var indoorCollectors = new List <CollectorValues>(); foreach (var collector in _context.Collectors.Where(t => t.Id != dashboard.OutdoorCollector.Id).Include(t => t.Sensors)) { var collectorValues = new CollectorValues(); var indoorSensorValues = new List <SensorValue>(); foreach (var sensor in collector.Sensors) { var sv = new SensorValue(); sv.Sensor = sensor; sv.Value = _context.SensorRecords.Where(t => t.SensorId == sensor.Id).LastOrDefault().Value; indoorSensorValues.Add(sv); } collectorValues.Sensors = indoorSensorValues; collectorValues.Location = collector.Name; indoorCollectors.Add(collectorValues); } collectorsValues.Collectors = indoorCollectors.ToArray(); } return(collectorsValues); }
public CollectorsValues GetOutdoorCollectors() { var collectorsValues = new CollectorsValues(); if (_context.Dashboards.Count() > 0) { var dashboard = _context.Dashboards.Include(t => t.OutdoorCollector.Sensors) .First(); if (dashboard != null) { var outdoorCollectors = new List <CollectorValues>(); var outdoorCollector = dashboard.OutdoorCollector; if (outdoorCollector != null) { var collectorValues = new CollectorValues(); var outdoorSensorValues = new List <SensorValue>(); foreach (var sensor in outdoorCollector.Sensors) { var sv = new SensorValue(); sv.Sensor = sensor; sv.Value = _context.SensorRecords.Where(t => t.SensorId == sensor.Id).LastOrDefault().Value; outdoorSensorValues.Add(sv); } collectorValues.Sensors = outdoorSensorValues; collectorValues.Location = outdoorCollector.Name; outdoorCollectors.Add(collectorValues); } collectorsValues.Collectors = outdoorCollectors.ToArray(); } } return(collectorsValues); }
public MainDashboard Get() { var mainDashboard = new MainDashboard(); if (_context.Dashboards.Count() > 0) { var dashboard = _context.Dashboards.Include(t => t.OutdoorCollector.Sensors) .First(); if (dashboard != null) { // Venkovní senzory var outdoorSensors = new List <SensorValue>(); foreach (var sensor in dashboard.OutdoorCollector.Sensors) { var sv = new SensorValue(); sv.Sensor = sensor; sv.Value = _context.SensorRecords.Where(t => t.SensorId == sensor.Id).LastOrDefault().Value; outdoorSensors.Add(sv); } mainDashboard.OutdoorSensorsValue = outdoorSensors.ToArray(); // Vnitřní senzory var IndoorCollectors = new List <CollectorValues>(); foreach (var collector in _context.Collectors.Where(t => t.Id != dashboard.OutdoorCollector.Id).Include(t => t.Sensors)) { var collectorValues = new CollectorValues(); var IndoorSensorValues = new List <SensorValue>(); foreach (var sensor in collector.Sensors) { var sv = new SensorValue(); sv.Sensor = sensor; sv.Value = _context.SensorRecords.Where(t => t.SensorId == sensor.Id).LastOrDefault().Value; IndoorSensorValues.Add(sv); } collectorValues.Sensors = IndoorSensorValues; collectorValues.Location = collector.Name; IndoorCollectors.Add(collectorValues); } mainDashboard.IndoorCollectors = IndoorCollectors.ToArray(); // Přepověď teploty a srážek if (_context.WeatherForecast != null) { var weatherForecastId = _context.WeatherForecast.LastOrDefault().Id; var hourlyForecast = _context.WeatherForecastHourlyState.Where(t => t.WeatherForecastId == weatherForecastId) .OrderBy(m => m.DateTime); if (hourlyForecast != null) { mainDashboard.TemperatureForecast = new HourlyForecast(); mainDashboard.TemperatureForecast.Hour = hourlyForecast.Select(t => t.DateTime.Hour.ToString()).ToArray(); mainDashboard.TemperatureForecast.Values = hourlyForecast.Select(t => t.Temperature).ToArray(); mainDashboard.PrecipitationForecast = new HourlyForecast(); mainDashboard.PrecipitationForecast.Hour = hourlyForecast.Select(t => t.DateTime.Hour.ToString()).ToArray(); mainDashboard.PrecipitationForecast.Values = hourlyForecast.Select(t => t.Rain + t.Snow).ToArray(); } var currentState = _context.WeatherForecastCurrentState.LastOrDefault(); if (currentState != null) { mainDashboard.Sunrise = currentState.SunriseTime.ToString("HH:mm"); mainDashboard.Sunset = currentState.SunsetTime.ToString("HH:mm"); } } // Teplota rosného bodu - v jídelně var indoorDewPointCollector = _context.Collectors.Where(t => t.Id == 1).Include(t => t.Sensors).FirstOrDefault(); if (indoorDewPointCollector != null) { var indoorTemperatureSensor = indoorDewPointCollector.Sensors.Where(t => t.Type == CMLSmartHomeCommon.Enums.SensorType.Temperature).FirstOrDefault(); var indoorHumaditySensor = indoorDewPointCollector.Sensors.Where(t => t.Type == CMLSmartHomeCommon.Enums.SensorType.Humidity).FirstOrDefault(); var indoorTemperature = _context.SensorRecords.Where(t => t.SensorId == indoorTemperatureSensor.Id).LastOrDefault().Value; var indoorHumadity = _context.SensorRecords.Where(t => t.SensorId == indoorHumaditySensor.Id).LastOrDefault().Value; mainDashboard.IndoorDewpointTemperature = Weather.DewpointTemperatureCalculate(indoorHumadity, indoorTemperature); } // Teplota rosného bodu - venkovní var outdoorTemperatureSensor = dashboard.OutdoorCollector.Sensors.Where(t => t.Type == CMLSmartHomeCommon.Enums.SensorType.Temperature).FirstOrDefault(); var outdoorHumaditySensor = dashboard.OutdoorCollector.Sensors.Where(t => t.Type == CMLSmartHomeCommon.Enums.SensorType.Humidity).FirstOrDefault(); var outdoorTemperature = _context.SensorRecords.Where(t => t.SensorId == outdoorTemperatureSensor.Id).LastOrDefault().Value; var outdoorHumadity = _context.SensorRecords.Where(t => t.SensorId == outdoorHumaditySensor.Id).LastOrDefault().Value; mainDashboard.OutdoorDewpointTemperature = Weather.DewpointTemperatureCalculate(outdoorHumadity, outdoorTemperature); // Datum a čas sestavení boardu mainDashboard.GenerationDateTime = DateTime.Now.ToString("dd.MM.yyyy HH:mm"); } } return(mainDashboard); }