Exemple #1
0
        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);
        }