Beispiel #1
0
        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("", ""));
        }