Ejemplo n.º 1
0
        private static MigrationFlowData BuildMigrationData(OperationModeEnum operationMode, IFileSystemHelper fileSystemHelper, bool addToBootManager)
        {
            MigrationFlowData migrationData   = new MigrationFlowData();
            IDriveInfo        systemDriveInfo = fileSystemHelper.GetSystemDriveInfo();

            migrationData.OperatingSystemDriveLetter = systemDriveInfo.Name.First();
            migrationData.TemporaryVhdFileMaxSize    = systemDriveInfo.TotalSize + (200 << 20) /*200MB*/;
            migrationData.VhdFileName            = "VHDNBOM_System_Image.vhdx";
            migrationData.VhdFileType            = Logic.Models.Enums.VhdType.VhdxDynamic;
            migrationData.VhdFileTemporaryFolder = vhdTemporaryFolderPath ?? fileSystemHelper.FindBestLocationForVhdTemporaryFolder();
            migrationData.AddVhdToBootManager    = addToBootManager;

            if (operationMode == OperationModeEnum.MigrateCurrentOsToVhd)
            {
                migrationData.DeleteTemporaryVhdFile    = true;
                migrationData.DestinationVhdMaxFileSize = (systemDriveInfo.AvailableFreeSpace - Constants.FiveGigs + Constants.OneGig) + (200 << 20);
                migrationData.DesiredTempVhdShrinkSize  = (systemDriveInfo.TotalSize - (systemDriveInfo.AvailableFreeSpace - Constants.FiveGigs));
                migrationData.VhdFileDestinationFolder  = $"{migrationData.OperatingSystemDriveLetter}:\\VHD_Boot";
            }

            return(migrationData);
        }