Ejemplo n.º 1
0
        public async Task <object> Show <TViewModel>(
            TViewModel viewModel,
            IConnection connection,
            IEnumerable <string> scopes)
            where TViewModel : IDialogContentViewModel, IConnectionInitializedViewModel
        {
            var result = default(object);

            using (var dialogViewModel = CreateViewModel())
                using (dialogViewModel.Done.Take(1).Subscribe(x => result = x))
                {
                    if (!connection.Scopes.Matches(scopes))
                    {
                        await dialogViewModel.StartWithLogout(viewModel, connection);
                    }
                    else
                    {
                        await viewModel.InitializeAsync(connection);

                        dialogViewModel.Start(viewModel);
                    }

                    var window = new GitHubDialogWindow(dialogViewModel);
                    window.ShowModal();
                }

            return(result);
        }
Ejemplo n.º 2
0
        public Task <object> Show(IDialogContentViewModel viewModel)
        {
            var result = default(object);

            using (var dialogViewModel = CreateViewModel())
                using (dialogViewModel.Done.Take(1).Subscribe(x => result = x))
                {
                    dialogViewModel.Start(viewModel);

                    var window = new GitHubDialogWindow(dialogViewModel);
                    window.ShowModal();
                }

            return(Task.FromResult(result));
        }
Ejemplo n.º 3
0
        public async Task <object> ShowWithFirstConnection <TViewModel>(TViewModel viewModel)
            where TViewModel : IDialogContentViewModel, IConnectionInitializedViewModel
        {
            var result = default(object);

            using (var dialogViewModel = CreateViewModel())
                using (dialogViewModel.Done.Take(1).Subscribe(x => result = x))
                {
                    var task   = dialogViewModel.StartWithConnection(viewModel);
                    var window = new GitHubDialogWindow(dialogViewModel);
                    window.ShowModal();
                    await task;
                }

            return(result);
        }