public RollbackWatcher(IPackageOperationNotificationService packageOperationNotificationService, IPackageOperationContextService packageOperationContextService,
                               IRollbackPackageOperationService rollbackPackageOperationService, IBackupFileSystemService backupFileSystemService, IFileSystemService fileSystemService,
                               IDirectoryService directoryService)
            : base(packageOperationNotificationService, packageOperationContextService)
        {
            Argument.IsNotNull(() => rollbackPackageOperationService);
            Argument.IsNotNull(() => backupFileSystemService);
            Argument.IsNotNull(() => fileSystemService);
            Argument.IsNotNull(() => directoryService);

            _rollbackPackageOperationService = rollbackPackageOperationService;
            _backupFileSystemService         = backupFileSystemService;
            _fileSystemService = fileSystemService;
            _directoryService  = directoryService;
        }
        public RollbackWatcher(IPackageOperationNotificationService packageOperationNotificationService, IPackageOperationContextService packageOperationContextService,
            IRollbackPackageOperationService rollbackPackageOperationService, IBackupFileSystemService backupFileSystemService, IFileSystemService fileSystemService)
            : base(packageOperationNotificationService)
        {
            Argument.IsNotNull(() => packageOperationContextService);
            Argument.IsNotNull(() => rollbackPackageOperationService);
            Argument.IsNotNull(() => backupFileSystemService);
            Argument.IsNotNull(() => fileSystemService);

            _packageOperationContextService = packageOperationContextService;
            _rollbackPackageOperationService = rollbackPackageOperationService;
            _backupFileSystemService = backupFileSystemService;
            _fileSystemService = fileSystemService;

            packageOperationContextService.OperationContextDisposing += OnOperationContextDisposing;
        }
        public RollbackWatcher(IPackageOperationNotificationService packageOperationNotificationService, IPackageOperationContextService packageOperationContextService,
                               IRollbackPackageOperationService rollbackPackageOperationService, IBackupFileSystemService backupFileSystemService, IFileSystemService fileSystemService)
            : base(packageOperationNotificationService)
        {
            Argument.IsNotNull(() => packageOperationContextService);
            Argument.IsNotNull(() => rollbackPackageOperationService);
            Argument.IsNotNull(() => backupFileSystemService);
            Argument.IsNotNull(() => fileSystemService);

            _packageOperationContextService  = packageOperationContextService;
            _rollbackPackageOperationService = rollbackPackageOperationService;
            _backupFileSystemService         = backupFileSystemService;
            _fileSystemService = fileSystemService;

            packageOperationContextService.OperationContextDisposing += OnOperationContextDisposing;
        }