public static void SaveSolarValues(IViessmannDbContext dbContext, DateTime time, int solarWhTotal, double solarCollectorTemp, double solarHotwaterTemp, bool solarPumpState, bool solarSuppression) { var day = time.Date; var dbSolarSeries = dbContext.ViessmannSolarTimeseries.Where(x => x.Key == day).FirstOrDefault(); if (dbSolarSeries == null) { dbContext.ViessmannSolarTimeseries.Add(dbSolarSeries = new ViessmannSolarMidresData() { Key = day }); } var oldSolarWhTotal = dbSolarSeries.SolarWhTotal; var series1 = dbSolarSeries.SolarWhSeries; series1.Accumulate(time, oldSolarWhTotal.HasValue ? solarWhTotal - oldSolarWhTotal.Value : 0); dbSolarSeries.SetSeries(0, series1); dbSolarSeries.SolarWhTotal = solarWhTotal; var series2 = dbSolarSeries.SolarCollectorTempSeries; series2[time] = solarCollectorTemp; dbSolarSeries.SetSeries(1, series2); var series3 = dbSolarSeries.SolarHotwaterTempSeries; series3[time] = solarHotwaterTemp; dbSolarSeries.SetSeries(2, series3); var series4 = dbSolarSeries.SolarPumpStateSeries; series4[time] = solarPumpState; dbSolarSeries.SetSeries(3, series4); var series5 = dbSolarSeries.SolarSuppressionSeries; series5[time] = solarSuppression; dbSolarSeries.SetSeries(4, series5); SaveLowresSolarValues(dbContext, day, series1, series2, series3, series4, series5); dbContext.SaveChanges(); }
private static void SaveLowresSolarValues(IViessmannDbContext dbContext, DateTime day, ViessmannSolarMidresData midRes) { var dbSolarSeries = TimeSeriesDbEntityBase.LoadOrCreateMonth(dbContext.ViessmannSolarLowresTimeseries, day);