private void UpdateJobLinkedStatus(string slnPath = null) { try { if (string.IsNullOrEmpty(slnPath)) { slnPath = ServicesContainer.VisualStudioSolutionInfo.SolutionPath; } SolutionJenkinsJobLink sJob = ApiHandlerSettingsManager.GetJobLink(slnPath); UIHelper.InvokeUI(() => { foreach (var job in Jobs) { job.LinkedToCurrentSolution = sJob != null && string.Equals(job.Url, sJob.JobUrl, System.StringComparison.InvariantCultureIgnoreCase); } }); } catch (Exception ex) { Logger.Log(ex); } }
private void SavePreferredView() { string slnPath = ServicesContainer.VisualStudioSolutionInfo.SolutionPath; if (string.IsNullOrWhiteSpace(slnPath) || SelectedView == null) { return; } bool isSaved = ApiHandlerSettingsManager.ContainsSolutionPreference(slnPath); if (!isSaved) { return; } var pref = ApiHandlerSettingsManager.GetJobLink(slnPath); if (!string.Equals(SelectedJenkinsServer.Url, pref.JenkinsServerUrl, StringComparison.InvariantCultureIgnoreCase)) { return; } ApiHandlerSettingsManager.UpdatePreferredView(slnPath, SelectedView.Name); }
private void HandleRemoveJenkinsServer() { if (SelectedJenkinsServer == null) { return; } ApiHandlerSettingsManager.RemoveServer(SelectedJenkinsServer); }
public JenkinsManagerViewModel() { InitializeInstanceMembers(); InitializeCommands(); ServicesContainer.VisualStudioSolutionEvents.SolutionChanged += SolutionPathChanged; JenkinsServers = ApiHandlerSettingsManager.GetServers(); SelectedJenkinsServer = JenkinsServers.FirstOrDefault(); _refreshTimer.Start(); }
public BasicUserOptionsContentViewModel() { _editJenkinsServer = new JenkinsServer(); AddServer = new RelayCommand(HandleAddJenkinsServer); RemoveServer = new RelayCommand(HandleRemoveJenkinsServer); ApplyChanges = new RelayCommand(HandleApplyChanges, CanExecuteApplyChanges); JenkinsServers = ApiHandlerSettingsManager.GetServers(); SelectedJenkinsServer = JenkinsServers.FirstOrDefault(); InitializeValidationRules(); }
private void HandleAddJenkinsServer() { var newJenkinsServer = new JenkinsServer() { Name = "New server", Url = "http://" }; ApiHandlerSettingsManager.AddServer(newJenkinsServer); SelectedJenkinsServer = newJenkinsServer; UpdateEditJenkinsServer(); }
public static IEnumerable <ValidationResult> Validate(JenkinsServer editedServer) { var servers = ApiHandlerSettingsManager.GetServers(); var equalServers = servers.Where((s) => string.Equals(editedServer.Name, s.Name, StringComparison.InvariantCultureIgnoreCase)); if (equalServers.Any((s) => s != ViewModelController.BasicUserOptionsContentViewModel.SelectedJenkinsServer)) { return(new[] { new ValidationResult() { Message = "Server name must be unique." } }); } return(Enumerable.Empty <ValidationResult>()); }
private void LinkJobToSolution(JenkinsJob j) { try { string slnPath = ServicesContainer.VisualStudioSolutionInfo.SolutionPath; if (string.IsNullOrEmpty(slnPath)) { Logger.LogInfo(Resources.SolutionNotLoaded); return; } ApiHandlerSettingsManager.SaveJobForSolution( j.Url, slnPath, SelectedView.Name, SelectedJenkinsServer.Url); UpdateJobLinkedStatus(); } catch (Exception ex) { Logger.Log(ex); } }
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 HandleApplyChanges() { ApiHandlerSettingsManager.UpdateServer(SelectedJenkinsServer, EditJenkinsServer); }
public async void StartJenkinsBuildForSolution(string slnPath) { SolutionJenkinsJobLink sJob = ApiHandlerSettingsManager.GetJobLink(slnPath); await ViewModelController.JenkinsManagerViewModel.BuildJob(sJob.JobUrl, sJob.JenkinsServerUrl); }
public bool IsSolutionLinked(string solutionPath) { return(ApiHandlerSettingsManager.ContainsSolutionPreference(solutionPath)); }