public async Task <bool> PromptForAccess(string requesterName, string organizationName) { return(await Dispatcher.UIThread.InvokeAsync(async() => { var promptWindow = new PromptForAccessWindow(); var viewModel = promptWindow.DataContext as PromptForAccessWindowViewModel; if (!string.IsNullOrWhiteSpace(requesterName)) { viewModel.RequesterName = requesterName; } if (!string.IsNullOrWhiteSpace(organizationName)) { viewModel.OrganizationName = organizationName; } var isOpen = true; promptWindow.Closed += (sender, arg) => { isOpen = false; }; promptWindow.Show(); while (isOpen) { await Task.Delay(100); } return viewModel.PromptResult; })); }
public Task <bool> PromptForAccess(string requesterName, string organizationName) { var result = App.Current.Dispatcher.Invoke(() => { var promptWindow = new PromptForAccessWindow(); var viewModel = promptWindow.DataContext as PromptForAccessWindowViewModel; if (!string.IsNullOrWhiteSpace(requesterName)) { viewModel.RequesterName = requesterName; } if (!string.IsNullOrWhiteSpace(organizationName)) { viewModel.OrganizationName = organizationName; } promptWindow.ShowDialog(); return(viewModel.PromptResult); }); return(Task.FromResult(result)); }