private async Task Refresh()
        {
            _rootJobs = null;
            _jobs     = null;
            IsBusy    = true;

            await Task.Run(() => {
                _jobManager.BuildJobTree();
                _jobs     = _jobManager.AllJobs.Select(job => new JobObjectViewModel(job)).ToDictionary(job => job.Job.Address);
                _rootJobs = _jobs.Values.Where(job => job.ParentJob == null).ToList();
                foreach (var job in _jobs.Values.Where(job => job.Job.ChildJobs != null))
                {
                    job.ChildJobs = job.Job.ChildJobs.Select(child => _jobs[child.Address]).ToList();
                }
            });

            RaisePropertyChanged(nameof(RootJobs));
            RaisePropertyChanged(nameof(ActiveProcessesInJob));
            RaisePropertyChanged(nameof(JobList));
            IsBusy      = false;
            SelectedJob = null;
        }