public async Task <ActionResult <IEnumerable <VegaImpulsDeviceData> > > GetAllDeltaAsync(long deviceId, [FromQuery] int days)
        {
            var result = await _repository
                         .GetAllAsync(deviceId, DateTimeOffset.Now, DateTimeOffset.Now.AddDays(-days))
                         .ConfigureAwait(false);

            if (result == null)
            {
                return(NotFound());
            }

            VegaImpulsDeviceData[] modifiedData = new VegaImpulsDeviceData[result.Count() - 1];

            for (int i = 1; i < result.Count(); i++)
            {
                modifiedData[i - 1]              = new VegaImpulsDeviceData();
                modifiedData[i - 1].Id           = result.ElementAt(i).Id;
                modifiedData[i - 1].Device       = result.ElementAt(i).Device;
                modifiedData[i - 1].DeviceId     = result.ElementAt(i).DeviceId;
                modifiedData[i - 1].PackageType  = result.ElementAt(i).PackageType;
                modifiedData[i - 1].BatteryLevel = result.ElementAt(i).BatteryLevel;
                modifiedData[i - 1].MainSettings = result.ElementAt(i).MainSettings;
                modifiedData[i - 1].AlarmExit    = result.ElementAt(i).AlarmExit;
                modifiedData[i - 1].Uptime       = result.ElementAt(i).Uptime;
                modifiedData[i - 1].Temperature  = result.ElementAt(i).Temperature;
                modifiedData[i - 1].InputState1  = result.ElementAt(i).InputState1;
                modifiedData[i - 1].InputState2  = result.ElementAt(i).InputState2;
                modifiedData[i - 1].InputState3  = result.ElementAt(i - 1).InputState3 - result.ElementAt(i).InputState3;
                modifiedData[i - 1].InputState4  = result.ElementAt(i).InputState4;
            }

            return(Ok(modifiedData));
        }
        public async Task <IActionResult> PutVegaImpulsDeviceData(long id, VegaImpulsDeviceData vegaImpulsDeviceData)
        {
            if (vegaImpulsDeviceData == null)
            {
                throw new ArgumentNullException(nameof(vegaImpulsDeviceData));
            }


            if (id != vegaImpulsDeviceData.Id || _repository.ImpulsDeviceDataExists(vegaImpulsDeviceData.DeviceId))
            {
                return(BadRequest());
            }

            try
            {
                await _repository.EditAsync(vegaImpulsDeviceData).ConfigureAwait(false);
            }
            catch
            {
                if (!_repository.ImpulsDeviceDataExists(vegaImpulsDeviceData.DeviceId))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
        public async Task <ActionResult <VegaImpulsDeviceData> > PostVegaImpulsDeviceData(VegaImpulsDeviceData vegaImpulsDeviceData)
        {
            if (vegaImpulsDeviceData == null)
            {
                throw new ArgumentNullException(nameof(vegaImpulsDeviceData));
            }

            if (!_repository.DeviceExists(vegaImpulsDeviceData.DeviceId))
            {
                return(BadRequest());
            }

            await _repository.AddAsync(vegaImpulsDeviceData).ConfigureAwait(false);

            return(CreatedAtAction("GetImpulsDeviceData", new { id = vegaImpulsDeviceData.Id }, vegaImpulsDeviceData));
        }