コード例 #1
0
 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);
     }
 }
コード例 #2
0
ファイル: HomeController.cs プロジェクト: maurbone/DocSuitePA
        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));
        }