public override void Initialize() { this.WhenAnyValue(vm => vm.SelectedIotHubInfo) .Do(selectedhub => { deviceInfoSelectionService.Select(null); iotHubSelectionService.Select(selectedhub); if (selectedhub != null) { settings.LastUsedIoTHub = selectedhub; } }) .Subscribe() .AddDisposableTo(Disposables); if (settings.LastCheckedIoTHubs != null && settings.LastCheckedIoTHubs.Any()) { IotHubInfo = settings.LastCheckedIoTHubs; if (settings.LastUsedIoTHub != null) { SelectedIotHubInfo = settings.LastCheckedIoTHubs.Single(h => h.Name.Equals(settings.LastUsedIoTHub.Name)); } } else { Observable.Return(Unit.Default) .SelectMany(_ => azureService.GetIoTHubs()) .ObserveOnDispatcher() .Do(hubs => IotHubInfo = hubs) .LogAndRetryAfterDelay(Logger, TimeSpan.FromSeconds(1), "Error while retrieving iot hubs information") .Subscribe() .AddDisposableTo(Disposables); } ReloadCommand = ReactiveCommand.CreateFromTask(Reload) .AddDisposableTo(Disposables); }