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);
        }
Example #3
0
        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();
        }
Example #5
0
        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();
        }
Example #6
0
        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);
        }
Example #10
0
 private void HandleApplyChanges()
 {
     ApiHandlerSettingsManager.UpdateServer(SelectedJenkinsServer, EditJenkinsServer);
 }
Example #11
0
 public async void StartJenkinsBuildForSolution(string slnPath)
 {
     SolutionJenkinsJobLink sJob = ApiHandlerSettingsManager.GetJobLink(slnPath);
     await ViewModelController.JenkinsManagerViewModel.BuildJob(sJob.JobUrl, sJob.JenkinsServerUrl);
 }
Example #12
0
 public bool IsSolutionLinked(string solutionPath)
 {
     return(ApiHandlerSettingsManager.ContainsSolutionPreference(solutionPath));
 }