public void verify_filtering_on_mime_types()
        {
            var             mimeTypeDocx = MimeTypes.GetMimeTypeByExtension("docx");
            var             info         = new QueueInfo("test", mimeTypes: mimeTypeDocx);
            QueueHandler    sut          = new QueueHandler(info, _db);
            StreamReadModel rm           = new StreamReadModel()
            {
                Filename   = new FileNameWithExtension("test.pdf"),
                FormatInfo = new FormatInfo()
                {
                    DocumentFormat = new DocumentFormat("thumb.small"),
                    BlobId         = new BlobId("blob.1"),
                    PipelineId     = new PipelineId("thumbnail")
                }
            };

            sut.Handle(rm, new TenantId("test"));
            var collection = _db.GetCollection <QueuedJob>("queue.test");

            Assert.That(collection.AsQueryable().Count(), Is.EqualTo(0));

            rm = new StreamReadModel()
            {
                Filename   = new FileNameWithExtension("test.docx"),
                FormatInfo = new FormatInfo()
                {
                    DocumentFormat = new DocumentFormat("thumb.small"),
                    BlobId         = new BlobId("blob.1"),
                    PipelineId     = new PipelineId("thumbnail")
                }
            };
            sut.Handle(rm, new TenantId("test"));

            Assert.That(collection.AsQueryable().Count(), Is.EqualTo(1));
        }
        public void verify_job_parameters_contains_mime_type()
        {
            var             info = new QueueInfo("test", "", "docx");
            QueueHandler    sut  = new QueueHandler(info, _db);
            StreamReadModel rm   = new StreamReadModel()
            {
                Filename   = new FileNameWithExtension("test.docx"),
                FormatInfo = new FormatInfo()
                {
                    DocumentFormat = new DocumentFormat("thumb.small"),
                    BlobId         = new BlobId("blob.1"),
                    PipelineId     = new PipelineId("thumbnail"),
                },
                DocumentDescriptorId = new DocumentDescriptorId(1),
            };

            sut.Handle(rm, new TenantId("test_tenant"));
            var collection = _db.GetCollection <QueuedJob>("queue.test");

            Assert.That(collection.AsQueryable().Count(), Is.EqualTo(1));
            var job = collection.AsQueryable().Single();

            Assert.That(job.BlobId, Is.EqualTo(new BlobId("blob.1")));
            Assert.That(job.Parameters[JobKeys.MimeType], Is.EqualTo(MimeTypes.GetMimeTypeByExtension("docx")));
        }
Ejemplo n.º 3
0
 private void SetDataPath(string path)
 {
     byte[] bytes = File.ReadAllBytes(path);
     data         = new MemoryStream(bytes, 0, bytes.Length, false, true);
     dataPath     = path;
     dataMimeType = MimeTypes.GetMimeTypeByExtension(Path.GetExtension(path));
 }
        public Stream OpenWrite(string path, string contentType, Encoding encoding)
        {
            if (path == null)
            {
                throw new ArgumentNullException("path");
            }
            if (archiveWriter == null)
            {
                throw new InvalidOperationException("The archive is not open.");
            }

            archiveWriter.WriteLine("Content-Type: {0}", contentType ?? MimeTypes.GetMimeTypeByExtension(Path.GetExtension(path)) ?? MimeTypes.Binary);
            archiveWriter.WriteLine("Content-Transfer-Encoding: base64");
            archiveWriter.WriteLine("Content-Location: file:///{0}", Uri.EscapeUriString(path.Replace('\\', '/')));
            archiveWriter.WriteLine();

            // FIXME: Buffering the whole stream in memory is not very efficient for large files.
            TemporaryMemoryStream stream = new TemporaryMemoryStream();

            stream.Closing += delegate
            {
                stream.Position = 0;
                archiveWriter.Write(Convert.ToBase64String(stream.GetBuffer(), 0, (int)stream.Length, Base64FormattingOptions.InsertLineBreaks));
                archiveWriter.WriteLine();
                archiveWriter.WriteLine(EscapedMessagePartBoundary);
            };

            return(stream);
        }
Ejemplo n.º 5
0
 /// <summary>
 /// Recursively copies files and folders from the source path in the native
 /// file system to the destination path within the report container.
 /// </summary>
 /// <param name="container">The container.</param>
 /// <param name="sourcePathInFileSystem">The source file or directory path in the native file system.</param>
 /// <param name="destPathInContainer">The destination file or directory path in the report container.</param>
 /// <exception cref="ArgumentNullException">Thrown if <paramref name="container" />,
 /// <paramref name="sourcePathInFileSystem"/> or <paramref name="destPathInContainer"/> is null.</exception>
 public static void CopyToReport(IReportContainer container, string sourcePathInFileSystem, string destPathInContainer)
 {
     FileUtils.CopyAllIndirect(sourcePathInFileSystem, destPathInContainer, null,
                               delegate(string sourceFilePath, string destFilePath)
     {
         using (Stream sourceStream = File.OpenRead(sourceFilePath))
         {
             using (Stream destStream = container.OpenWrite(destFilePath, MimeTypes.GetMimeTypeByExtension(Path.GetExtension(sourceFilePath)), null))
             {
                 FileUtils.CopyStreamContents(sourceStream, destStream);
             }
         }
     });
 }
Ejemplo n.º 6
0
        private static Attachment GetBinaryAttachment(UriDataAttachment vstsAttachment, string fileEx)
        {
            var mem = new MemoryStream();
            var f   = new FileStream(vstsAttachment.Uri.LocalPath, FileMode.Open, FileAccess.Read);

            mem.SetLength(f.Length);

            f.Read(mem.GetBuffer(), 0, (int)f.Length - 1);

            var mime = MimeTypes.GetMimeTypeByExtension(fileEx) ?? MimeTypes.Binary;

            var binaryAttachment = new BinaryAttachment(vstsAttachment.Description, mime, mem.ToArray());

            f.Close();
            mem.Close();

            return(binaryAttachment);
        }
Ejemplo n.º 7
0
 public void SupportsMappingExtensionToMimeType(string extension, string expectedMimeType)
 {
     Assert.AreEqual(expectedMimeType, MimeTypes.GetMimeTypeByExtension(extension));
 }