List <RestorePoint> IAlgorithm.DoSmthWithRestorePoint(List <RestorePoint> restorePoints) { var finalList = new List <RestorePoint>(); foreach (var resPoint in restorePoints) { RestorePoint lastFullRestorePoint = null; foreach (var restorePoint in restorePoints) { if (restorePoint.CreationTime < timeLimit) { continue; } if (restorePoint is IncrementaleRestorePoint && lastFullRestorePoint == null) { continue; } if (restorePoint is FullRestorePoint) { lastFullRestorePoint = restorePoint; } finalList.Add(restorePoint); } } return(finalList); }
List <RestorePoint> IAlgorithm.DoSmthWithRestorePoint(List <RestorePoint> restorePoints) { List <RestorePoint> backupSizeLimitFiles = new List <RestorePoint>(); long tempSum = 0; RestorePoint lastFull = null; foreach (var restorePoint in restorePoints) { if (restorePoint is IncrementaleRestorePoint && lastFull == null) { continue; } if (restorePoint.Size < maxBackupSize && (tempSum + restorePoint.Size) < maxBackupSize) { if (restorePoint is FullRestorePoint) { lastFull = restorePoint; } backupSizeLimitFiles.Add(restorePoint); tempSum += restorePoint.Size; } } return(backupSizeLimitFiles); }
public IncrementaleRestorePoint(List <FileInfo> listOfFiles, RestorePoint previousPoint) { copiedFiles = new List <FileInfo>(); foreach (var file in previousPoint.copiedFiles) { foreach (var sameFile in listOfFiles) { if (sameFile.FullName == file.FullName && sameFile.Length != file.Length) { copiedFiles.Add(file); break; } } } }