private bool TrySelectPreferredView(SolutionChangedEventArgs e) { if (!ApiHandlerSettingsManager.ContainsSolutionPreference(e.SolutionPath)) { return false; } var jobLink = ApiHandlerSettingsManager.GetJobLink(e.SolutionPath); var jobLinkServer = JenkinsServers.FirstOrDefault((s) => string.Equals(s.Url, jobLink.JenkinsServerUrl, StringComparison.InvariantCultureIgnoreCase)); if (jobLinkServer == null) { // server has been removed return false; } bool preferredViewSelected = false; if (SelectedJenkinsServer == jobLinkServer) { // Correct server already selected, just fix the view var preferredView = _jenkinsViews.FirstOrDefault((j) => string.Equals(j.Name, jobLink.JenkinsViewName)); if (preferredView != null) { SelectedView = preferredView; preferredViewSelected = true; } } else { SelectNewJenkinsServer(jobLinkServer, jobLink.JenkinsViewName); preferredViewSelected = true; } return preferredViewSelected; }
private void SolutionPathChanged(object sender, SolutionChangedEventArgs e) { bool preferredViewSelected = TrySelectPreferredView(e); if (!preferredViewSelected) { // If correct view was already selected, or view doesn't exists, manually update the link icon UpdateJobLinkedStatus(e.SolutionPath); } }