public void DeleteAttachments(string volumeName, DocIdentity identity, List <string> attachmentNames) { using (Volume volume = Dictionary.OpenVolume(volumeName, identity.DocUidFilter)) { attachmentNames.ForEach(attachmentName => volume.DeleteAttachment(attachmentName)); } }
public void NewAttachmentFromFile(string volumeName, DocIdentity docIdentity, string filePath, string attachmentName) { using (Volume volObj = Dictionary.OpenVolume(volumeName, docIdentity.DocUidFilter)) { volObj.NewAttachmentFromFile(filePath, attachmentName); } }
public void DeleteDocument(string volumeName, DocIdentity docIdentity) { using (Volume volume = Dictionary.OpenVolume(volumeName, docIdentity.DocUidFilter)) { volume.DeleteCurrentDocument(); } }
public bool IsDocumentExist(string volumeName, DocIdentity docIdentity) { using (Volume volume = Dictionary.OpenVolume(volumeName, docIdentity.DocUidFilter)) { return(volume.DocumentCount > 0); } }
private static Document GetDocument(Volume volume, DocIdentity identity) { Document doc = new Document(identity.CompositeId.ToString()) { // read system fields Extension = volume.DocumentExtension, Timestamp = volume.DocumentTimestamp, HasAttachments = volume.DocumentHasAttachments, Version = volume.DocumentVersion, AddTime = volume.DocumentAddTime }; int fieldIndex = 0; foreach (FieldInfo field in volume.Fields) { doc.Fields.Add(new Field { Name = field.Name, Value = volume[fieldIndex] }); fieldIndex++; } return(doc); }
public void DeleteAttachment(string volumeName, DocIdentity docIdentity, string attachmentName) { using (Volume volume = Dictionary.OpenVolume(volumeName, docIdentity.DocUidFilter)) { volume.DeleteAttachment(attachmentName); } }
public DocumentsResult GetDocuments(VolumeState volumeState, int start, int count) { if (start < 0) { throw new ArgumentOutOfRangeException(nameof(start)); } Volume volume = OpenVolume(volumeState); List <Document> documents = new List <Document>(); if (volume.DocumentCount == 0) { return(DocumentsResult.Empty); } int index = 0; volume.Move(start); while (index < count && !volume.IsEOF) { DocIdentity identity = new DocIdentity(volume.VolumeMemberDocId, volume.VolumeId); Document doc = GetDocument(volume, identity); documents.Add(doc); volume.MoveNext(); index++; } return(new DocumentsResult(documents, volume.DocumentCount)); }
public List <AttachmentInfo> GetAttachments(string volumeName, DocIdentity identity) { using (Volume volume = Dictionary.OpenVolume(volumeName, identity.DocUidFilter)) { List <string> attachments = volume.GetAttachments(); return(attachments.Select(attName => volume.GetAttachmentInfo(attName)).ToList()); } }
public AttachmentInfo RenameAttachment(string volumeName, DocIdentity docIdentity, string oldAttachmentName, string newAttachmentName) { using (Volume volume = Dictionary.OpenVolume(volumeName, docIdentity.DocUidFilter)) { volume.RenameAttachment(oldAttachmentName, newAttachmentName); return(volume.GetAttachmentInfo(newAttachmentName)); } }
public IActionResult GetAttachments(string volume, ulong documentId) { if (!TryGetSession(User, out Session session)) { return(Unauthorized()); } DocIdentity identity = new DocIdentity(documentId); List <AttachmentInfo> attachments = session.GetAttachments(volume, identity); return(Ok(attachments)); }
public IActionResult DeleteAttachment(string volume, ulong documentId, string attachmentName) { if (!TryGetSession(User, out Session session)) { return(Unauthorized()); } DocIdentity identity = new DocIdentity(documentId); session.DeleteAttachment(volume, identity, attachmentName); return(NoContent()); }
public IActionResult GetAttachment(string volume, ulong documentId, string attachmentName) { if (!TryGetSession(User, out Session session)) { return(Unauthorized()); } DocIdentity identity = new DocIdentity(documentId); string filePath = session.ExtractAttachment(volume, identity, attachmentName); string contentType = MimeMapping.GetMimeMapping(filePath); return(PhysicalFile(filePath, contentType)); }
public async Task <IActionResult> AddAttachment(string volume, ulong documentId, [FromForm] IFormFile file, [FromForm] string attachmentName = "") { if (!TryGetSession(User, out Session session)) { return(Unauthorized()); } if (!session.IsVolumeExist(volume)) { return(NotFound(Resources.ErrorVolumeNotFound)); } if (file == null) { return(BadRequest(Resources.ErrorFileIsMissing)); } if (file.Length <= 0) { return(BadRequest(Resources.ErrorFileIsEmpty)); } string filePath = GetFilePath(session, file); DocIdentity docIdentity = new DocIdentity(documentId); try { using (FileStream stream = new FileStream(filePath, FileMode.Create)) { await file.CopyToAsync(stream); } session.NewAttachmentFromFile(volume, docIdentity, filePath, attachmentName); } finally { System.IO.File.Delete(filePath); } if (attachmentName.IsNullOrEmpty()) { attachmentName = Path.GetFileNameWithoutExtension(filePath); } return(CreatedAtRoute( Routes.GetAttachment, new { volume, documentId, attachmentName }, attachmentName )); }
public string ExtractDocument(string volumeName, DocIdentity docIdentity) { using (Volume volume = Dictionary.OpenVolume(volumeName, docIdentity.DocUidFilter)) { volume.MoveFirst(); string extension = volume.DocumentExtension; string filePath = Path.Combine(TempDirectory, Guid.NewGuid() + "." + extension); volume.ExtractDocumentToFile(filePath); return(filePath); } }
public IActionResult GetAttachmentToken(string volume, ulong documentId, string attachmentName) { if (!TryGetSession(User, out Session _)) { return(Unauthorized()); } DocIdentity identity = new DocIdentity(documentId); string sessionId = GetSessionId(User); AttachmentsSelection selection = new AttachmentsSelection(identity.CompositeId, attachmentName); DownloadTicket ticket = SessionManager .CreateDownloadTicket(sessionId, volume, selection); return(Ok(new { ticket.Token })); }
public string ExtractAttachment(string volumeName, DocIdentity docIdentity, string attachmentName) { using (Volume volume = Dictionary.OpenVolume(volumeName, docIdentity.DocUidFilter)) { volume.MoveFirst(); AttachmentInfo attInfo = volume.GetAttachmentInfo(attachmentName); string extension = !string.IsNullOrEmpty(attInfo.Extension) ? attInfo.Extension.ToLower() : "tmp"; string filePath = Path.Combine(TempDirectory, attachmentName + "." + extension); volume.ExtractAttachmentToFile(attachmentName, filePath); return(filePath); } }
public Document UpdateDocumentFields(string volumeName, DocIdentity docIdentity, List <Field> updateFields) { using (Volume volume = Dictionary.OpenVolume(volumeName, docIdentity.DocUidFilter)) { foreach (Field updateField in updateFields) { int fieldIndex = volume.GetFieldIndex(updateField.Name); if (fieldIndex > 0) { volume[fieldIndex] = updateField.Value; } } volume.UpdateFields(); // reload volume volume.Reopen(docIdentity.DocUidFilter, string.Empty); return(GetDocument(volume, docIdentity)); } }
public IActionResult UpdateAttachment(string volume, ulong documentId, string oldName, [FromBody] AttachmentUpdate attachmentUpdate) { if (!TryGetSession(User, out Session session)) { return(Unauthorized()); } if (!session.IsVolumeExist(volume)) { return(NotFound(Resources.ErrorVolumeNotFound)); } DocIdentity docId = new DocIdentity(documentId); if (!session.IsDocumentExist(volume, docId)) { return(NotFound(Resources.ErrorDocumentNotFound)); } AttachmentInfo updatedAttachment = session.RenameAttachment(volume, docId, oldName, attachmentUpdate.NewName); return(Ok(updatedAttachment)); }
public IActionResult DeleteDocument(string volume, ulong documentId) { if (!TryGetSession(User, out Session session)) { return(Unauthorized()); } if (!session.IsVolumeExist(volume)) { return(NotFound(Resources.ErrorVolumeNotFound)); } DocIdentity docId = new DocIdentity(documentId); if (!session.IsDocumentExist(volume, docId)) { return(NotFound(Resources.ErrorDocumentNotFound)); } session.DeleteDocument(volume, docId); return(NoContent()); }
public IActionResult UpdateDocument(string volume, ulong documentId, [FromBody] List <Field> updateFields) { if (!TryGetSession(User, out Session session)) { return(Unauthorized()); } if (!session.IsVolumeExist(volume)) { return(NotFound(Resources.ErrorVolumeNotFound)); } DocIdentity docId = new DocIdentity(documentId); if (!session.IsDocumentExist(volume, docId)) { return(NotFound(Resources.ErrorDocumentNotFound)); } Document updatedDocument = session .UpdateDocumentFields(volume, docId, updateFields); return(Ok(updatedDocument)); }
/// <summary> /// To string /// </summary> /// <returns></returns> public override String ToString() { return(DocIdentity.ToString()); }