public void LoadSettings(ISettingsSource buildServerConfig) { var settings = IntegrationSettings.ReadFrom(buildServerConfig); if (string.IsNullOrWhiteSpace(settings.ProjectUrl)) { var(vstsOrTfsProjectFound, autoDetectedProjectUrl) = ProjectUrlHelper.TryDetectProjectFromRemoteUrls(_remotes); if (vstsOrTfsProjectFound) { settings.ProjectUrl = autoDetectedProjectUrl; } } _currentSettings = settings; UpdateView(); }
private void ExtractLink_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { ThreadHelper.JoinableTaskFactory.RunAsync(async() => { var buildUrl = Clipboard.ContainsText() ? Clipboard.GetText() : ""; var(success, projectUrl, buildId) = ProjectUrlHelper.TryParseBuildUrl(buildUrl); if (success) { string buildDefinitionName; if (!string.IsNullOrWhiteSpace(_currentSettings.ApiToken)) { try { using (var apiClient = new ApiClient(projectUrl, _currentSettings.ApiToken)) { buildDefinitionName = await apiClient.GetBuildDefinitionNameFromIdAsync(buildId) ?? ""; } } catch (Exception) { MessageBox.Show(_failToLoadBuildDefinitionInfoMessage.Text, _failToExtractDataFromClipboardCaption.Text, MessageBoxButtons.OK, MessageBoxIcon.Error); return; } } else { buildDefinitionName = ""; MessageBox.Show(_infoNoApiTokenMessage.Text, _failToExtractDataFromClipboardCaption.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning); } _currentSettings.ProjectUrl = projectUrl; _currentSettings.BuildDefinitionFilter = buildDefinitionName; UpdateView(); } else { MessageBox.Show(_failToExtractDataFromClipboardMessage.Text, _failToExtractDataFromClipboardCaption.Text, MessageBoxButtons.OK, MessageBoxIcon.Error); } }).FileAndForget(); }