public void WriteAttributes(Document Document) { try { CheckPrerequisite(Document); } catch (Exception) { Document = DocumentService.GetDocument(Document.IdDocument); if (Document == null) { throw new BiblosDS.Library.Common.Exceptions.DocumentNotFound_Exception(); } CheckPrerequisite(Document); } if (Document.AttributeValues == null) { Document.AttributeValues = AttributeService.GetAttributeValues(Document.IdDocument); if (Document.AttributeValues == null) { throw new BiblosDS.Library.Common.Exceptions.Attribute_Exception("Attributi obbligatori per continuare."); } } SaveAttributes(Document); if (Document.Storage.EnableFulText) { SaveSearchableAttributes(Document); } }
public ActionResult ExportPDD(string data) { return(ActionResultHelper.TryCatchWithLogger(() => { ICollection <Guid> ids = JsonConvert.DeserializeObject <ICollection <Guid> >(HttpUtility.UrlDecode(data)); Guid processId = Guid.NewGuid(); string path = Path.Combine(ConfigurationHelper.GetAppDataPath(), processId.ToString()); Directory.CreateDirectory(path); try { foreach (Guid id in ids) { Document document = DocumentService.GetDocument(id); using (DocumentsClient client = new DocumentsClient()) { document.Content = client.GetDocumentContentById(id); } //Copied from preservation logic document.AttributeValues = AttributeService.GetAttributeValues(document.IdDocument); var fileName = string.Concat(_preservationService.PreservationDocumentFileName(document), (Path.GetExtension(document.Name))); System.IO.File.WriteAllBytes(Path.Combine(path, fileName), document.Content.Blob); if (document.IdPreservation.HasValue) { Preservation preservation = _preservationService.GetPreservation(document.IdPreservation.Value, false); string[] files = Directory.GetFiles(preservation.Path).Where(x => x.Contains("INDICE_") || x.Contains("CHIUSURA_") || x.Contains("IPDA_") || x.Contains("LOTTI_")).ToArray(); foreach (string file in files.Where(f => !System.IO.File.Exists(Path.Combine(path, Path.GetFileName(f))))) { System.IO.File.Copy(file, Path.Combine(path, Path.GetFileName(file)), true); } } } string zipPath = CreatePDDZip(path); return File(System.IO.File.ReadAllBytes(zipPath), System.Net.Mime.MediaTypeNames.Application.Zip); } finally { if (Directory.Exists(path)) { Directory.Delete(path, true); } } }, _loggerService)); }