public async Task OnDeviceStatus(DeviceStatus deviceStatus) { try { var dr = GetDeviceRuntime(deviceStatus.Key); if (dr != null) { try { dr.Status = deviceStatus; var dto = deviceStatus.ToDTO(dr); await this.playHub.Clients.All.SendDeviceStatus(dto); log.Debug($"{dr.DisplayName}, {deviceStatus.ToString()}"); } catch (Exception xe) { log.Error(xe); } } else { log.Debug($"Update received from device {deviceStatus.Key}, state {deviceStatus.State} - not found in device run time"); } } catch (Exception xe) { log.Error(xe); } }