public async Task<IActionResult> AddDevice(DeviceDto deviceDto) { try { if (string.IsNullOrEmpty(deviceDto.AddressLabel)) return StatusCode((int)HttpStatusCode.BadRequest, "The Address field is required."); var address = await _repo.GetAddress(deviceDto.AddressLabel); if (address == null) address = await _repo.AddAddress(deviceDto.AddressLabel); else if (address.IsConfirmed == false) address.IsConfirmed = true; else return StatusCode((int)HttpStatusCode.BadRequest, "Address exists!"); var newDevice = new Database.Entities.Device() { Name = deviceDto.Name, AddressId = address.Id, Created = DateTime.Now, KindId = deviceDto.KindId, ComponentId = deviceDto.ComponentId, CategoryId = deviceDto.CategoryId, Icon = deviceDto.Icon, IsAutoUpdate = deviceDto.IsAutoUpdate, VersionId = deviceDto.VersionId, }; await _repo.Add(newDevice); return Ok(newDevice); } catch (Exception ex) { _logger.LogError(ex, ex.Message); return StatusCode((int)HttpStatusCode.InternalServerError, "Error!"); } }