/// <summary> /// Logs the user in and moves to editing server screen. /// Forces a configuration change to the saved connection so the server URL is set, /// but the team project and team are null /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private async void NextButton_Click(object sender, RoutedEventArgs e) { if (InteractionAllowed) { if (Uri.IsWellFormedUriString(ServerComboBox.Text, UriKind.Absolute)) { var serverUri = ToUri(ServerComboBox.Text); // block clicking "next" until login request is done ToggleLoading(true); await AzureDevOps.HandleLoginAsync(CredentialPromptType.PromptIfNeeded, serverUri).ConfigureAwait(false); if (AzureDevOps.ConnectedToAzureDevOps) { AzureDevOps.Configuration.SavedConnection = new ConnectionInfo(serverUri, null, null); ChangeStates(ControlState.EditingServer); } else { ToggleLoading(false); Dispatcher.Invoke(() => MessageDialog.Show(string.Format(CultureInfo.InvariantCulture, Properties.Resources.UnableToConnectFormattedMessage, serverUri.ToString()))); Dispatcher.Invoke(ServerComboBox.Focus); } } else { Dispatcher.Invoke(() => MessageDialog.Show(Properties.Resources.ADO_URL_Fromat_Message)); } } }
public async Task BadUrisAsync() { var azureDevOps = new AzureDevOps(null); Assert.IsFalse(await azureDevOps.TryDetectRepositoryInformationAsync(string.Empty, "https://contoso.visualstudio.com/Contoso", CancellationToken.None, out _)); Assert.IsFalse(await azureDevOps.TryDetectRepositoryInformationAsync(string.Empty, "https://contoso.visualstudio.com/Contoso/", CancellationToken.None, out _)); Assert.IsFalse(await azureDevOps.TryDetectRepositoryInformationAsync(string.Empty, "https://contoso.visualstudio.com/Contoso/Hello", CancellationToken.None, out _)); Assert.IsFalse(await azureDevOps.TryDetectRepositoryInformationAsync(string.Empty, "https://contoso.visualstudio.com/Contoso/Hello/", CancellationToken.None, out _)); Assert.IsFalse(await azureDevOps.TryDetectRepositoryInformationAsync(string.Empty, "https://contoso.visualstudio.com/Contoso/Hello/_git", CancellationToken.None, out _)); Assert.IsFalse(await azureDevOps.TryDetectRepositoryInformationAsync(string.Empty, "https://contoso.visualstudio.com/Contoso/Hello/_git/", CancellationToken.None, out _)); Assert.IsFalse(await azureDevOps.TryDetectRepositoryInformationAsync(string.Empty, "https://contoso.visualstudio.com/Contoso/_git", CancellationToken.None, out _)); Assert.IsFalse(await azureDevOps.TryDetectRepositoryInformationAsync(string.Empty, "https://contoso.visualstudio.com/Contoso/_git/", CancellationToken.None, out _)); Assert.IsFalse(await azureDevOps.TryDetectRepositoryInformationAsync(string.Empty, "https://contoso.visualstudio.com/Contoso/_git/Hello", CancellationToken.None, out _)); Assert.IsFalse(await azureDevOps.TryDetectRepositoryInformationAsync(string.Empty, "https://contoso.visualstudio.com/Contoso/Hello?dfghfhg=fghj", CancellationToken.None, out _)); Assert.IsFalse(await azureDevOps.TryDetectRepositoryInformationAsync(string.Empty, "https://contoso.visualstudio.com/Contoso/Hello/?dfghfhg=fghj", CancellationToken.None, out _)); Assert.IsFalse(await azureDevOps.TryDetectRepositoryInformationAsync(string.Empty, "https://contoso.visualstudio.com/Contoso/Hello/_git?dfghfhg=fghj", CancellationToken.None, out _)); Assert.IsFalse(await azureDevOps.TryDetectRepositoryInformationAsync(string.Empty, "https://contoso.visualstudio.com/Contoso/Hello/_git/?dfghfhg=fghj", CancellationToken.None, out _)); Assert.IsFalse(await azureDevOps.TryDetectRepositoryInformationAsync(string.Empty, "https://contoso.visualstudio.com/Contoso/_git?dfghfhg=fghj", CancellationToken.None, out _)); Assert.IsFalse(await azureDevOps.TryDetectRepositoryInformationAsync(string.Empty, "https://contoso.visualstudio.com/Contoso/_git/?dfghfhg=fghj", CancellationToken.None, out _)); Assert.IsFalse(await azureDevOps.TryDetectRepositoryInformationAsync(string.Empty, "https://contoso.visualstudio.com/Contoso/_git/Hello?dfghfhg=fghj", CancellationToken.None, out _)); Assert.IsFalse(await azureDevOps.TryDetectRepositoryInformationAsync(string.Empty, "https://contoso.visualstudio.com/Contoso/_git/Hello/?dfghfhg=fghj", CancellationToken.None, out _)); Assert.IsFalse(await azureDevOps.TryDetectRepositoryInformationAsync(string.Empty, "https://contoso.visualstudio.com", CancellationToken.None, out _)); Assert.IsFalse(await azureDevOps.TryDetectRepositoryInformationAsync(string.Empty, "https://contoso.visualstudio.com/", CancellationToken.None, out _)); Assert.IsFalse(await azureDevOps.TryDetectRepositoryInformationAsync(string.Empty, "https://dev.azure.com/{organization}/", CancellationToken.None, out _)); Assert.IsFalse(await azureDevOps.TryDetectRepositoryInformationAsync(string.Empty, "http://www.bing.com", CancellationToken.None, out _)); Assert.IsFalse(await azureDevOps.TryDetectRepositoryInformationAsync(string.Empty, "http://www.bing.com:8080", CancellationToken.None, out _)); }
public async Task VisualStudioComAsync() { var azureDevOps = new AzureDevOps(null); Assert.IsTrue(await azureDevOps.TryDetectRepositoryInformationAsync(string.Empty, "https://[email protected]/DefaultCollection/Contoso/_git/MyRepository/?foor=bar", CancellationToken.None, out RepositoryInfo repositoryInfo)); Assert.AreEqual("contoso", repositoryInfo.Properties["Organization"]); Assert.AreEqual("Contoso", repositoryInfo.Properties["Project"]); Assert.AreEqual("MyRepository", repositoryInfo.Properties["Repository"]); Assert.AreEqual("https://contoso.visualstudio.com/", repositoryInfo.Properties["OrganizationUrl"]); Assert.AreEqual("https://contoso.visualstudio.com/Contoso/_git/MyRepository/", repositoryInfo.Properties["RepositoryUrl"]); Assert.IsTrue(await azureDevOps.TryDetectRepositoryInformationAsync(string.Empty, "https://[email protected]/DefaultCollection/Contoso/_git/MyRepository?foor=bar", CancellationToken.None, out repositoryInfo)); Assert.AreEqual("contoso", repositoryInfo.Properties["Organization"]); Assert.AreEqual("Contoso", repositoryInfo.Properties["Project"]); Assert.AreEqual("MyRepository", repositoryInfo.Properties["Repository"]); Assert.AreEqual("https://contoso.visualstudio.com/", repositoryInfo.Properties["OrganizationUrl"]); Assert.AreEqual("https://contoso.visualstudio.com/Contoso/_git/MyRepository/", repositoryInfo.Properties["RepositoryUrl"]); Assert.IsTrue(await azureDevOps.TryDetectRepositoryInformationAsync(string.Empty, "https://[email protected]/DefaultCollection/Contoso/_git/MyRepository", CancellationToken.None, out repositoryInfo)); Assert.AreEqual("contoso", repositoryInfo.Properties["Organization"]); Assert.AreEqual("Contoso", repositoryInfo.Properties["Project"]); Assert.AreEqual("MyRepository", repositoryInfo.Properties["Repository"]); Assert.AreEqual("https://contoso.visualstudio.com/", repositoryInfo.Properties["OrganizationUrl"]); Assert.AreEqual("https://contoso.visualstudio.com/Contoso/_git/MyRepository/", repositoryInfo.Properties["RepositoryUrl"]); }
public Task RestoreConfigurationAsync(string serializedConfig) { if (!String.IsNullOrEmpty(serializedConfig)) { Configuration.LoadFromSerializedString(serializedConfig); } return(AzureDevOps.HandleLoginAsync()); }
public static void Main(string[] args) { //Instancia de AzureDevOps azureDevOps = new AzureDevOps(); Compilador compilador = new Compilador(); EjecutorPruebasUnitarias ejecutorPruebasUnitarias = new EjecutorPruebasUnitarias(); Instalador instalador = new Instalador(); Notificador notificador = new Notificador(); bool salir = true; while (salir) { Console.WriteLine("*******************************************"); Console.WriteLine("******** Suscriptores disponibles *********"); Console.WriteLine("* 1) Compilador *"); Console.WriteLine("* 2) Pruebas unitarias *"); Console.WriteLine("* 3) Instalador *"); Console.WriteLine("* 4) Notificador *"); Console.WriteLine("******** Suscriptores disponibles *********"); Console.WriteLine("0) Ejecutar acción principal"); Console.WriteLine("5) Salir del programa"); Console.WriteLine(""); int resultado = int.Parse(Console.ReadLine()); switch (resultado) { case 0: azureDevOps.SubirCodigo(); break; case 1: azureDevOps.AgregarSuscriptor(compilador); break; case 2: azureDevOps.AgregarSuscriptor(ejecutorPruebasUnitarias); break; case 3: azureDevOps.AgregarSuscriptor(instalador); break; case 4: azureDevOps.AgregarSuscriptor(notificador); break; case 5: salir = false; break; } } Console.ReadLine(); }
public AzureDevOpsUnitTests() { _sut = new AzureDevOps(); _sut.AddInner(new BaseHandler()); _sample = new PodCastTableEntity { FeedName = "Azure DevOps Podcast", EpisodeName = "Mark Miller on Developer Productivity", EpisodeUrl = "http://traffic.libsyn.com/azuredevops/ADP_037-2.mp3?dest-id=768873", EpisodePostUrl = "http://azuredevopspodcast.clear-measure.com/mark-miller-on-developer-productivity" }; }
/// <summary> /// Logs the user out and moves to selecting a new server screen. /// Forces a configuration change to the saved connection so it is null. /// This means we will not try to automatically connect when we next start up. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void disconnectButton_Click(object sender, RoutedEventArgs e) { // Don't allow disconnect until project teams have loaded if (InteractionAllowed) { AzureDevOps.Disconnect(); ClearTreeviewSelection(); ChangeStates(ControlState.NoServer); AzureDevOps.Configuration.SavedConnection = null; } canSave = false; Dispatcher.Invoke(UpdateSaveButton); }
public async Task PrivateServerAsync() { var azureDevOps = new AzureDevOps(null); Assert.IsTrue(await azureDevOps.TryDetectRepositoryInformationAsync(string.Empty, "https://tfs.contoso.com:8080/tfs/Contoso/_git/MyRepository/?foor=bar", CancellationToken.None, out RepositoryInfo repositoryInfo)); Assert.AreEqual("tfs.contoso.com", repositoryInfo.Properties["Organization"]); Assert.AreEqual("Contoso", repositoryInfo.Properties["Project"]); Assert.AreEqual("MyRepository", repositoryInfo.Properties["Repository"]); Assert.AreEqual("https://tfs.contoso.com:8080/tfs/", repositoryInfo.Properties["OrganizationUrl"]); Assert.AreEqual("https://tfs.contoso.com:8080/tfs/Contoso/_git/MyRepository/", repositoryInfo.Properties["RepositoryUrl"]); Assert.IsTrue(await azureDevOps.TryDetectRepositoryInformationAsync(string.Empty, "https://tfs.contoso.com:8080/tfs/Contoso/_git/MyRepository?foor=bar", CancellationToken.None, out repositoryInfo)); Assert.AreEqual("tfs.contoso.com", repositoryInfo.Properties["Organization"]); Assert.AreEqual("Contoso", repositoryInfo.Properties["Project"]); Assert.AreEqual("MyRepository", repositoryInfo.Properties["Repository"]); Assert.AreEqual("https://tfs.contoso.com:8080/tfs/", repositoryInfo.Properties["OrganizationUrl"]); Assert.AreEqual("https://tfs.contoso.com:8080/tfs/Contoso/_git/MyRepository/", repositoryInfo.Properties["RepositoryUrl"]); }
public Task <IIssueResult> FileIssueAsync(IssueInformation issueInfo) { bool topMost = false; Application.Current.Dispatcher.Invoke(() => topMost = Application.Current.MainWindow.Topmost); Action <int> updateZoom = (int x) => Configuration.ZoomLevel = x; (int?issueId, string newIssueId) = FileIssueHelpers.FileNewIssue(issueInfo, Configuration.SavedConnection, topMost, Configuration.ZoomLevel, updateZoom); return(Task.Run <IIssueResult>(() => { // Check whether issue was filed once dialog closed & process accordingly if (!issueId.HasValue) { return null; } try { if (!FileIssueHelpers.AttachIssueData(issueInfo, newIssueId, issueId.Value).Result) { MessageDialog.Show(Properties.Resources.There_was_an_error_identifying_the_created_issue_This_may_occur_if_the_ID_used_to_create_the_issue_is_removed_from_its_Azure_DevOps_description_Attachments_have_not_been_uploaded); } return new IssueResult() { DisplayText = issueId.ToString(), IssueLink = AzureDevOps.GetExistingIssueUrl(issueId.Value) }; } #pragma warning disable CA1031 // Do not catch general exception types catch (Exception e) { e.ReportException(); } #pragma warning restore CA1031 // Do not catch general exception types return null; })); }
/// <summary> /// Asynchronously collect the current user's projects /// </summary> /// <returns></returns> private static Task <IEnumerable <TeamProject> > GetProjectsAsync() { return(Task <IEnumerable <TeamProject> > .Run(() => AzureDevOps.GetTeamProjects())); }
public void TestAzureDevOps(PropertyInfo property, AzureDevOps instance) { AssertProperty(instance, property); }