コード例 #1
0
ファイル: ArchiveService.cs プロジェクト: cmu-sei/Caster.Api
        /// <summary>
        /// Archive a Directory.
        /// Assumes the Directory is fully populated with Files, Workspaces, and child Directories
        /// </summary>
        public async Task <ArchiveResult> ArchiveDirectory(Directory directory, ArchiveType type, bool includeIds)
        {
            var stream = new System.IO.MemoryStream();

            using (ArchiveOutputStream archiveStream = ArchiveOutputStream.Create(stream, type))
            {
                await ArchiveDirectory(directory, "", archiveStream, includeIds, includeDirName : false);
            }

            stream.Position = 0;

            return(new ArchiveResult
            {
                Data = stream,
                Name = $"{directory.GetExportName(includeIds)}.{type.GetExtension()}",
                Type = type.GetContentType()
            });
        }
コード例 #2
0
ファイル: ArchiveService.cs プロジェクト: cmu-sei/Caster.Api
        /// <summary>
        /// Archive a Project.
        /// Assumes all Directories are fully populated with Files, Workspaces, and child Directories
        /// </summary>
        public async Task <ArchiveResult> ArchiveProject(Project project, ArchiveType type, bool includeIds)
        {
            var stream = new System.IO.MemoryStream();

            using (ArchiveOutputStream archiveStream = ArchiveOutputStream.Create(stream, type))
            {
                foreach (var directory in project.Directories.Where(d => d.ParentId == null))
                {
                    await ArchiveDirectory(directory, "", archiveStream, includeIds, includeDirName : true);
                }
            }

            stream.Position = 0;

            return(new ArchiveResult
            {
                Data = stream,
                Name = $"{project.Name}.{type.GetExtension()}",
                Type = type.GetContentType()
            });
        }