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"))); }
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); }
/// <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); } } }); }
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); }
public void SupportsMappingExtensionToMimeType(string extension, string expectedMimeType) { Assert.AreEqual(expectedMimeType, MimeTypes.GetMimeTypeByExtension(extension)); }