Пример #1
0
        private async Task <DocumentService.Document> InsertDocument(ModelDocument.ArchiveDocument documentModel, KeyValuePair <Archive, List <DocumentService.Attribute> > archive)
        {
            _logger.WriteDebug(new LogMessage($"Inserting {documentModel?.Name} into archive {documentModel?.Archive} with {documentModel?.ContentStream?.Length} bytes"), LogCategories);
            DocumentService.Document document = new DocumentService.Document
            {
                Content = new Content()
                {
                    Blob = documentModel.ContentStream
                },
                Name            = documentModel.Name,
                Archive         = Archives.Single(f => f.Name.Equals(documentModel.Archive, StringComparison.InvariantCultureIgnoreCase)),
                AttributeValues = new List <DocumentService.AttributeValue>()
            };
            document.AttributeValues.Add(new DocumentService.AttributeValue()
            {
                Value     = documentModel.Name,
                Attribute = archive.Value.Single(f => f.Name.Equals(_biblos_attribute_filename, StringComparison.InvariantCultureIgnoreCase))
            });
            document.AttributeValues.Add(new DocumentService.AttributeValue()
            {
                Value     = documentModel.Name,
                Attribute = archive.Value.Single(f => f.Name.Equals(_biblos_attribute_signature, StringComparison.InvariantCultureIgnoreCase))
            });
            document = await _documentsClient.AddDocumentToChainAsync(document, documentModel.IdChain, ContentFormat.Binary);

            _logger.WriteInfo(new LogMessage($"Document {document.IdDocument} has been successfully created in archive {archive.Key.Name}"), LogCategories);
            return(document);
        }
Пример #2
0
        public async Task <ModelDocument.ArchiveDocument> InsertDocumentAsync(ModelDocument.ArchiveDocument documentModel)
        {
            return(await DocumentHelper.TryCatchWithLogger(async() =>
            {
                DocumentService.Document document = new DocumentService.Document();
                string archiveName = documentModel.Archive;
                KeyValuePair <Archive, List <DocumentService.Attribute> > archive = await GetArchive(archiveName);

                document.Archive = archive.Key;
                document.Name = documentModel.Name;
                document = await _documentsClient.InsertDocumentChainAsync(document);
                _logger.WriteInfo(new LogMessage($"Document chain {document.IdDocument} has been successfully created in archive {archive.Key.Name}"), LogCategories);
                documentModel.IdLegacyChain = document.IdBiblos.Value;
                documentModel.IdChain = document.IdDocument;
                document = await InsertDocument(documentModel, archive);
                documentModel.IdDocument = document.IdDocument;
                documentModel.Size = document.Size;
                documentModel.Version = document.Version;
                return documentModel;
            }, _logger, LogCategories));
        }
Пример #3
0
 public async Task <ICollection <ModelDocument.ArchiveDocument> > InsertDocumentsAsync(ICollection <ModelDocument.ArchiveDocument> documents, Guid?idChain = null)
 {
     return(await DocumentHelper.TryCatchWithLogger(async() =>
     {
         if (!documents.Any())
         {
             return documents;
         }
         DocumentService.Document documentChain;
         DocumentService.Document document = null;
         string archiveName = documents.First().Archive;
         KeyValuePair <Archive, List <DocumentService.Attribute> > archive = await GetArchive(archiveName);
         if (!idChain.HasValue)
         {
             documentChain = new DocumentService.Document
             {
                 Archive = archive.Key
             };
             documentChain = await _documentsClient.InsertDocumentChainAsync(documentChain);
             _logger.WriteInfo(new LogMessage($"Document chain {documentChain.IdDocument} has been successfully created in archive {archive.Key.Name}"), LogCategories);
         }
         else
         {
             documentChain = await _documentsClient.GetDocumentInfoByIdAsync(idChain.Value);
         }
         foreach (ModelDocument.ArchiveDocument documentModel in documents)
         {
             documentModel.IdLegacyChain = documentChain.IdBiblos.Value;
             documentModel.IdChain = documentChain.IdDocument;
             document = await InsertDocument(documentModel, archive);
             documentModel.IdDocument = document.IdDocument;
             documentModel.Size = document.Size;
             documentModel.Version = document.Version;
         }
         return documents;
     }, _logger, LogCategories));
 }