public List <IRestorePoint> DeletePoints(Backup backup)
        {
            var count = (_mode == Limits.OneLimitPass)
                ? _algos.Select(algo => algo.DeletePoints(backup).Count).Max()
                : _algos.Select(algo => algo.DeletePoints(backup).Count).Min();

            return(IPointsDeleteAlgorithm.Delete(backup, count));
        }
 public BackupService(Backup backup, Storage directory, IFileCopyCreateAlgorithm fileCopyAlgo,
                      IPointCreateAlgorithm pointCreateAlgo, IPointsDeleteAlgorithm pointsDeleteAlgo)
 {
     _backup          = backup;
     _directory       = directory;
     FileCopyAlgo     = fileCopyAlgo;
     PointCreateAlgo  = pointCreateAlgo;
     PointsDeleteAlgo = pointsDeleteAlgo;
 }