示例#1
0
        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);
        }
示例#2
0
        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;
                    }
                }
            }
        }