Esempio n. 1
0
        public void Should_Return_Default_ContentType()
        {
            var uri         = new Uri("http://www.bettercms.com/test/logo");
            var contentType = MimeTypeUtility.DetermineContentType(uri);

            Assert.AreEqual("application/octet-stream", contentType);
        }
Esempio n. 2
0
        public void Should_Determine_ContentType_Uppercase()
        {
            var uri         = new Uri("http://www.bettercms.com/test/LOGO.PNG");
            var contentType = MimeTypeUtility.DetermineContentType(uri);

            Assert.AreEqual("image/png", contentType);
        }
Esempio n. 3
0
        public HttpResponseMessage Download(Guid id, bool inline = false)
        {
            var response = default(HttpResponseMessage);

            using (var engine = new P8ContentEngine())
            {
                var properties = engine.GetDocument(id, os, dc);

                if (properties != null && properties.Any())
                {
                    var document = properties.MapToFileNet(new Document(os, dc), true, true);

                    var mimeType = (!MimeTypeUtility.DefaultType.Equals(document.MimeType, StringComparison.CurrentCultureIgnoreCase)
                                        ? document.MimeType : null)
                                   ?? MimeTypeUtility.GetMimeType(document.Name, null)
                                   ?? MimeTypeUtility.GetMimeType(document.Title);

                    var fileExtension = MimeTypeUtility.GetFileExtension(mimeType);

                    var fileName = document.Title ?? document.Name;

                    if (!fileName.EndsWith(fileExtension))
                    {
                        fileName += fileExtension;
                    }

                    var content = ((IList <byte[]>)properties["ContentElements"]).First();

                    response = new HttpResponseMessage(HttpStatusCode.OK)
                    {
                        Content = new ByteArrayContent(content)
                    };

                    response.Content.Headers.ContentLength      = content.Length;
                    response.Content.Headers.ContentType        = new MediaTypeHeaderValue(mimeType);
                    response.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue(!inline ? "attachment" : "inline")
                    {
                        FileName = fileName
                    };
                }
            }

            return(response);
        }
Esempio n. 4
0
        public Task <HttpResponseMessage> Upload()
        {
            if (!Request.Content.IsMimeMultipartContent())
            {
                throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType);
            }

            var provider = new CustomMultipartFormDataStreamProvider();

            return(Request.Content.ReadAsMultipartAsync(provider).ContinueWith(t =>
            {
                var content = default(byte[]);
                var location = default(string);

                if (t.IsFaulted || t.IsCanceled)
                {
                    return Request.CreateErrorResponse(HttpStatusCode.InternalServerError, t.Exception);
                }

                foreach (var file in provider.CustomFileData)
                {
                    var details = new
                    {
                        MimeType = MimeTypeUtility.GetMimeType(file.LocalFileName),
                        LocalName = file.LocalFileName,
                        FileName = file.Headers.ContentDisposition.FileName,
                        Size = file.Headers.ContentDisposition.Size,
                        Type = file.Headers.ContentType,

                        Stream = file.MemoryStream,

                        Metadata = file.Metadata
                    };

                    using (var stream = details.Stream)
                    {
                        content = stream.ToArray();
                    }

                    using (var engine = new P8CEUnderwriting())
                    {
                        var results = engine.UploadUnderwritingDocuments(new[] {
                            new Underwriting2014Document
                            {
                                Name = details.FileName,
                                MimeType = details.MimeType,
                                Content = content
                            }
                        });

                        if (results != null && results.Any())
                        {
                            location = results.First().ToString("B");
                        }
                    }
                }

                var response = Request.CreateResponse(HttpStatusCode.Created);

                response.Headers.Location = new Uri(location);

                return response;
            }));
        }