Beispiel #1
0
        public void RemoveDocument(DocumentKey documentKey)
        {
            var metadata = DocumentMetadataRepository.GetDocumentMetadata(documentKey);

            using (var scope = new DMSTransactionScope())
            {
                Parallel.ForEach(metadata.References, refKey => BinaryDocumentRepository.RemoveDocument(refKey));

                DocumentMetadataRepository.RemoveDocumentMetadata(documentKey);
                scope.Complete();
            }
        }
Beispiel #2
0
        public void AddDocument(TDocument document)
        {
            if (DocumentMetadataRepository.DocumentExist(document.Key))
            {
                throw new DMSException("Document with such an ID already exists.");
            }

            var metadata = document.GetMetadata();
            var binaries = document.GetBinaries();

            using (var scope = new DMSTransactionScope())
            {
                Parallel.ForEach(binaries, binary => BinaryDocumentRepository.AddDocument(binary.Key, binary.Value));

                DocumentMetadataRepository.AddDocumentMetadata(metadata);
                scope.Complete();
            }
        }
Beispiel #3
0
        private TDocument GetDocument(TDocumentMetadata metadata)
        {
            var refernces = metadata.References.AsParallel().ToDictionary(e => e, e => BinaryDocumentRepository.GetDocument(e));

            var document = new TDocument();

            document.Initialize(metadata, refernces);
            return(document);
        }