public async Task <IActionResult> Create( [FromHeader] string rpiKey, [FromBody] InMetricArrayModel inMetricsCollection) { var raspberryPi = await dbContext.RaspberryPis.FirstOrDefaultAsync(r => r.RpiKey.Equals(rpiKey)); if (raspberryPi == null) { return(BadRequest()); } var tenSecondMetrics = inMetricsCollection.Metrics .Select(metric => new TenSecondMetric { UsageNow = metric.UsageNow, RedeliveryNow = metric.RedeliveryNow, SolarNow = metric.SolarNow, UsageGasNow = metric.UsageGasNow, UsageTotalHigh = metric.UsageTotalHigh, RedeliveryTotalHigh = metric.RedeliveryTotalHigh, UsageTotalLow = metric.UsageTotalLow, RedeliveryTotalLow = metric.RedeliveryTotalLow, UsageGasTotal = metric.UsageGasTotal, SolarTotal = metric.SolarTotal, Mode = metric.Mode, Created = metric.Created, RaspberryPi = raspberryPi }) .ToList(); await dbTenSecondMetricRepository.StoreMetrics(tenSecondMetrics); return(Created("", "")); }
public async Task <IActionResult> StoreEnergy([FromBody] LegacyModel legacyModel) { var raspberryPi = await dbDeviceRepository.GetDevice(legacyModel.RpiKey); if (raspberryPi == null) { return(Unauthorized()); } var tenSecondMetrics = legacyModel.Data .Select(metric => new TenSecondMetric { UsageNow = (int)double.Parse(metric.UsageNow), RedeliveryNow = (int)double.Parse(metric.RedeliveryNow), SolarNow = metric.SolarNow, UsageGasNow = (int)double.Parse(metric.UsageGasNow), UsageTotalHigh = (long)double.Parse(metric.UsageTotalHigh), RedeliveryTotalHigh = (long)double.Parse(metric.RedeliveryTotalHigh), UsageTotalLow = (long)double.Parse(metric.UsageTotalLow), RedeliveryTotalLow = (long)double.Parse(metric.RedeliveryTotalLow), UsageGasTotal = (long)double.Parse(metric.UsageGasTotal), SolarTotal = metric.SolarTotal, Mode = int.Parse(metric.Mode), Created = GetDateTimeFromUnixTimeStamp(metric.UnixTimeStamp), RaspberryPi = raspberryPi }) .ToList(); await dbTenSecondMetricRepository.StoreMetrics(tenSecondMetrics); return(Created("", "")); }