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)); }
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)); }
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)); } }
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); } } }