/// <inheritdoc/>
        public async Task <bool> UpdateSensorAsync(SensorDTO sensorDTO)
        {
            var sensor = await _sensorContext.Sensors.FirstOrDefaultAsync(s => s.Id == sensorDTO.Id);

            if (sensor == null)
            {
                return(false);
            }

            sensor.Serial = sensorDTO.Serial;
            if (sensor.SensorType.Type != sensorDTO.SensorType)
            {
                var newType = await _sensorContext.Types.FirstOrDefaultAsync(t => t.Type == sensorDTO.SensorType);

                if (newType == null)
                {
                    _logger.LogError(SensorsConstants.UNKNOWN_SENSOR_TYPE);
                    return(false);
                }
                else
                {
                    sensor.SensorTypeId = newType.Id;
                    sensor.SensorType   = newType;
                }
            }

            _sensorContext.Update(sensor);
            await _sensorContext.SaveChangesAsync(new CancellationToken());

            return(true);
        }
        /// <inheritdoc/>
        public async Task <bool> UpdateRecordAsync(RecordDTO recordDTO)
        {
            var record = await _sensorContext.Records.FirstOrDefaultAsync(r => r.Id == recordDTO.Id);

            if (record == null)
            {
                return(false);
            }

            if (recordDTO.Value == null)
            {
                _logger.LogError(RecordsConstants.EMPTY_RECORD_VALUE);
                return(false);
            }
            record.Value     = recordDTO.Value;
            record.Date      = recordDTO.Date;
            record.IsDeleted = recordDTO.IsDeleted;

            if (record.SensorDevice.Serial != recordDTO.SensorDeviceSerial)
            {
                var newSensorDevice = await _sensorContext.Sensors.FirstOrDefaultAsync(s => s.Serial == recordDTO.SensorDeviceSerial);

                if (newSensorDevice == null)
                {
                    _logger.LogError(SensorsConstants.UNKNOWN_SENSOR_SERIAL);
                    return(false);
                }
                else
                {
                    record.SensorDeviceId = newSensorDevice.Id;
                    record.SensorDevice   = newSensorDevice;
                }
            }

            _sensorContext.Update(record);
            await _sensorContext.SaveChangesAsync(new CancellationToken());

            return(true);
        }