public RepositorySelectionPage(ScmRepositoryProvider repoProvider) : this() { this.repoProvider = repoProvider; if (this.repoProvider != null) { Name = string.Format("ProviderPage_{0}", this.repoProvider.Id); } }
/// <summary> /// Tries to find a registered provider with the given name. /// </summary> /// <param name="id">Repository provider's identifier</param> /// <param name="repoProvider">[out] Repository provider instance if found</param> /// <remarks>This call DOES NOT trigger provider package initialization.</remarks> /// <returns>true if the lookup is successful, false otherwise</returns> public bool TryGetRepositoryProvider(string id, out ScmRepositoryProvider repoProvider) { repoProvider = null; if (_nameProviderMap != null && _nameProviderMap.Count > 0) { return(_nameProviderMap.TryGetValue(id, out repoProvider)); } return(false); }
public override ScmRepositorySelectionControl CreateSelectionControl() { ScmRepositoryProvider dlg = Target; if (dlg != null) { return(dlg.CreateSelectionControl()); } return(null); }
public override WizardPage GetNextPage(WizardPage page) { if (page == this.providerSelectionPage) { ScmRepositoryProvider repoProvider = this.providerSelectionPage.SelectedRepositoryProvider; if (repoProvider != null) { if (this.repositorySelectionPages == null) { this.repositorySelectionPages = new Dictionary <string, RepositorySelectionPage>(); } string providerId = repoProvider.Id; RepositorySelectionPage result = null; if (!this.repositorySelectionPages.TryGetValue(providerId, out result)) { result = new RepositorySelectionPage(repoProvider); Pages.Add(result); this.repositorySelectionPages.Add(providerId, result); } return(result); } } return(null); }
public RepositoryProviderListViewItem(SmartListView view, ScmRepositoryProvider repoProvider) : base(view) { Tag = repoProvider; Refresh(); }
public override void OnFinish(System.ComponentModel.CancelEventArgs e) { WizardMessage newMsg = null; this.resultUri = null; EnablePageAndButtons(false); ScmUserNamePasswordEventArgs credentialsArgs = null; try { Uri uri = this.providerSelectionPage.Uri; if (uri == null && this.repositorySelectionPages != null) { ScmRepositoryProvider repoProvider = this.providerSelectionPage.SelectedRepositoryProvider; if (repoProvider != null) { RepositorySelectionPage repoSelectionPage; if (this.repositorySelectionPages.TryGetValue(repoProvider.Id, out repoSelectionPage)) { uri = repoSelectionPage.Uri; if (uri != null) { credentialsArgs = new ScmUserNamePasswordEventArgs(uri.AbsoluteUri); repoSelectionPage.FillUsernamePassword(credentialsArgs); if (credentialsArgs.Cancel) { credentialsArgs = null; } } } } } bool cancel = false; if (uri == null) { cancel = true; } else { Exception exc = null; if (credentialsArgs != null) { try { ProgressRunnerArgs runnerArgs = new ProgressRunnerArgs(); runnerArgs.CreateLog = false; // Make sure username and password is saved for future use ProgressRunnerResult result = Context.GetService <IProgressRunner>().RunModal("Checking repository", runnerArgs, delegate(object sender, ProgressWorkerArgs ee) { EnsureCredentials(credentialsArgs); }); cancel = !(result.Succeeded || result.Exception == null); exc = result.Exception; } catch (Exception runnere) { cancel = true; exc = runnere.InnerException == null ? runnere : runnere.InnerException; } } // TODO (BA) Should we validate here? /* * try * { * ProgressRunnerArgs runnerArgs = new ProgressRunnerArgs(); * runnerArgs.CreateLog = false; * // Check the validity of the specified repository location using IProgressRunner * ProgressRunnerResult result = Context.GetService<IProgressRunner>().RunModal("Checking URI", * runnerArgs, * delegate(object sender, ProgressWorkerArgs ee) * { CheckResult(uri); }); * cancel = !(result.Succeeded || result.Exception == null); * exc = result.Exception; * } * catch (Exception runnere) * { * cancel = true; * exc = runnere.InnerException == null ? runnere : runnere.InnerException; * } */ if (cancel && exc != null) { newMsg = new WizardMessage(exc.Message, WizardMessage.MessageType.Error); } } this.resultUri = cancel ? null : uri; DialogResult = cancel ? System.Windows.Forms.DialogResult.None : System.Windows.Forms.DialogResult.OK; if (CurrentPage.Message != newMsg) { CurrentPage.Message = newMsg; UpdateMessage(); } e.Cancel = cancel; } finally { EnablePageAndButtons(true); } }