public async Task <IActionResult> Create([FromBody] SensorViewModel sensor)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var dbSensor = new Sensor()
            {
                DeviceId = sensor.DeviceId,
                Name     = sensor.Name
            };

            _context.Sensors.Add(dbSensor);

            var sensorProperties = sensor.Properties.Select(sp => new SensorProperty()
            {
                SensorId = dbSensor.Id,
                Name     = sp.Name,
                Value    = sp.Value
            });

            _context.SensorProperties.AddRange(sensorProperties);

            await _context.SaveChangesAsync();

            var sensorModel = dbSensor.ToViewModel();

            sensorModel.Properties = sensorProperties.Select(sp => sp.ToViewModel());

            return(Ok(sensorModel));
        }
        public async Task <IActionResult> Create([FromBody] DeviceViewModel device)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var dbDevice = new Device()
            {
                Name           = device.Name,
                NormalizedName = device.Name.Normalize().ToUpperInvariant()
            };

            _context.Devices.Add(dbDevice);
            await _context.SaveChangesAsync();

            return(Ok(dbDevice.ToViewModel()));
        }