Catrobat.IDE.Core.Services.Common.ProgramExportService.CreateProgramPackageForExport C# (CSharp) Method

CreateProgramPackageForExport() public method

public CreateProgramPackageForExport ( string programName ) : Task
programName string
return Task
        public async Task<Stream> CreateProgramPackageForExport(string programName)
        {
            var streamResult = new MemoryStream();

            var tempPath = Path.Combine(StorageConstants.TempProgramExportPath, programName);
            var programFolderPath = Path.Combine(StorageConstants.ProgramsPath, programName);
            var programCodePath = Path.Combine(tempPath, StorageConstants.ProgramCodePath);

            using (var storage = StorageSystem.GetStorage())
            {
                await storage.DeleteDirectoryAsync(tempPath);
                await storage.CopyDirectoryAsync(programFolderPath, tempPath);

                var programCode = await storage.ReadTextFileAsync(programCodePath);

                var converterResult = await CatrobatVersionConverter.
                ConvertToXmlVersion(programCode, XmlConstants.TargetOutputVersion);

                if (converterResult.Error != CatrobatVersionConverter.VersionConverterStatus.NoError)
                    return null;
            }

            var zipService = new ZipService();
            await zipService.ZipCatrobatPackage(streamResult, tempPath);
            streamResult.Seek(0, SeekOrigin.Begin);
            return streamResult;
        }