private async Task <Unit> CreateNewDevice() { using (var disposables = new CompositeDisposable()) { try { Logger.Debug($"User pressed 'Add New Device'"); var dialog = new InputWindowDevice(); var viewModel = viewModelFactory.CreateViewModel <InputWindowDeviceViewModel>(); viewModel.AddDisposableTo(disposables); viewModel.Window = dialog; dialog.DataContext = viewModel; dialog.WindowStartupLocation = WindowStartupLocation.CenterScreen; var finished = dialog.ShowDialog(); Logger.Debug($"Opend Dialog Window to add New Device Name"); if (viewModel.CanAddDevice) { var newDeviceName = viewModel.NewDeviceName; Logger.Debug($"User entered Name:'{viewModel.NewDeviceName}' and pressed 'Create New Device' Button"); await azureService.CreateNewDevice(hubName, newDeviceName); Logger.Debug($"Command was send with AzureCli"); await Reload(); } } catch (Exception e) { Logger.Error("Error while creating new device", e); } } return(Unit.Default); }