public TaskExecutionService(PersistenceService persistenceService, BackupService backupService,
                                    AliasService aliasService, CommandExecutionService commandExecutionService, WindowService windowService)
        {
            _persistenceService      = persistenceService;
            _backupService           = backupService;
            _aliasService            = aliasService;
            _commandExecutionService = commandExecutionService;
            _windowService           = windowService;

            // Delegates
            _webService.AbortChecker       += () => IsAbortPending;
            _archivingService.AbortChecker += () => IsAbortPending;
            _apiService.AbortChecker       += () => IsAbortPending;

            // Events
            _commandExecutionService.FileChangeMade += (sender, args) => _fileChanges.Add(args.FilePath);
            _webService.ProgressChanged             += (sender, args) => UpdateStatus(args.Progress);
            _archivingService.ProgressChanged       += (sender, args) => UpdateStatus(args.Progress);
        }