예제 #1
0
        public override string GetFile(Session session, string volumeName)
        {
            DocIdentity identity = new DocIdentity(DocumentId);

            if (Attachments.Count == 1 && !ExcludeMode && !ArchiveIfSingle)
            {
                return(session.ExtractAttachment(volumeName, identity, Attachments.First()));
            }

            return(ExtractAttachmentsToArchive(session, identity, volumeName));
        }
예제 #2
0
        public override string GetFile(Session session, string volumeName)
        {
            if (DocumentIds.Count == 1 && !ExcludeMode && !ArchiveIfSingle)
            {
                // download single file
                DocIdentity identity = new DocIdentity(DocumentIds.First());

                return(session.ExtractDocument(volumeName, identity));
            }

            return(ExtractToArchive(session, volumeName));
        }
예제 #3
0
        public override void Delete(Session session, string volumeName)
        {
            DocIdentity identity = new DocIdentity(DocumentId);

            using (Volume volume = session.Dictionary.OpenVolume(volumeName, identity.DocUidFilter))
            {
                List <string> deleteAttachments = ExcludeMode
                    ? volume.GetAttachments().Except(Attachments).ToList()
                    : new List <string>(Attachments);

                deleteAttachments.ForEach(attachmentName => volume.DeleteAttachment(attachmentName));
            }
        }
예제 #4
0
        private string ExtractAttachmentsToArchive(Session session, DocIdentity identity, string volumeName)
        {
            using (Volume volume = session.Dictionary.OpenVolume(volumeName, identity.DocUidFilter))
            {
                List <string> extractAttachments = ExcludeMode
                    ? volume.GetAttachments().Except(Attachments).ToList()
                    : new List <string>(Attachments);

                string archiveFile = PathUtility.GetRandomFile("zip");
                using (TempDirectory tempFolder = new TempDirectory())
                {
                    volume.ExtractAttachmentsToFolder(tempFolder.Location, extractAttachments);
                    ZipFile.CreateFromDirectory(tempFolder.Location, archiveFile);

                    return(archiveFile);
                }
            }
        }