private async void ConfigurableViewAdded_Executed(object sender, ExecutedRoutedEventArgs e) { var id = (string)e.Parameter; e.Handled = true; for (int retries = 10; retries > 0; --retries) { var env = _environments.FirstOrDefault(ev => ev.Factory?.Configuration?.Id == id); if (env != null) { Environments.MoveCurrentTo(env); return; } await Task.Delay(50).ConfigureAwait(continueOnCapturedContext: true); } Debug.Fail("Failed to switch to added environment"); }
private void ConfigureEnvironment_Executed(object sender, ExecutedRoutedEventArgs e) { e.Handled = true; var env = (EnvironmentView)e.Parameter; if (Environments.CurrentItem != env) { Environments.MoveCurrentTo(env); if (Environments.CurrentItem != env) { return; } } var ext = env.Extensions.OfType <ConfigurationExtensionProvider>().FirstOrDefault(); if (ext != null) { Extensions.MoveCurrentTo(ext); } }