private async Task LoadJenkinsJobs()
        {
            try
            {
                if (SelectedJenkinsServer == null || SelectedView == null)
                {
                    return;
                }

                lock (_loadingJobsBusyLock)
                {
                    if (_loadingJobsBusy)
                    {
                        return;
                    }

                    _loadingJobsBusy = true;
                }

                string sourceUrl = SelectedJenkinsServer.Url;
                IEnumerable <JenkinsJob> refreshedJobs = await JenkinsDataLoader.GetJobsFromView(SelectedJenkinsServer, SelectedView);

                if (TryHandleNewJenkinsOverview(refreshedJobs, sourceUrl))
                {
                    JenkinsServersEnabled = true;
                    UpdateJobLinkedStatus();
                }

                LoadingFailed = false;
            }
            catch (Exception ex)
            {
                Logger.Log(ex);
                LoadingFailed = true;
                UIHelper.InvokeUI(() => Jobs.Clear());
                _refreshTimer.Stop();
                JenkinsServersEnabled = true;
            }
            finally
            {
                lock (_loadingJobsBusyLock)
                {
                    _loadingJobsBusy = false;

                    if (!LoadingFailed)
                    {
                        _refreshTimer.Interval = _forceRefresh ? 1 : _refreshInterval;
                        _forceRefresh          = false;
                        _refreshTimer.Start();
                    }
                }
            }
        }
        private async void RefreshViews(string preferredViewName)
        {
            try
            {
                if (SelectedJenkinsServer == null)
                {
                    return;
                }

                JenkinsServersEnabled = false;

                JenkinsViews = await JenkinsDataLoader.GetViews(SelectedJenkinsServer);

                var preferredView = JenkinsViews.FirstOrDefault((v) => string.Equals(v.Name, preferredViewName));

                SelectedView = preferredView ?? JenkinsViews.FirstOrDefault();

                ForceReload(true);
            }
            catch (Exception ex)
            {
                Logger.Log(ex);
            }
        }