Example #1
0
        private Stream OpenDocumentStream(IDocumentId documentId, FileAccess access, FileShare share)
        {
            GetDocumentInfo(documentId).ContentProvider?.ContentPreparation(documentId.DocumentId);
            var file = File.Open(documentId.DocumentId, FileMode.Open, access, share);

            try
            {
                return(SmartLowMemoryStream.Open(file));
            }
            catch
            {
                file?.Dispose();
                throw;
            }
        }
Example #2
0
        private INamedStream OpenLazyDocument(IDocumentId documentId, FileAccess access, FileShare share)
        {
            var documentInfo = GetDocumentInfo(documentId);
            var result       = new Document
            {
                Name   = documentInfo.Name,
                Stream = new LazyConstructableStream(
                    streamFactory: () => OpenDocumentStream(documentId, access, share),
                    optimizedSizeGetterWithoutStreamCreating: () => documentInfo.ContentProvider?.OptimizedContentLengthProvider)
            };

            return(result);
        }