Exemple #1
0
        public async Task <HttpResponseMessage> GetFile(Guid id)
        {
            try
            {
                var dataModel = await _binaryHelper.GetBinaryDataModel(id);

                if (dataModel.Stream.CanSeek)
                {
                    dataModel.Stream.Seek(0, SeekOrigin.Begin);
                }
                var response = new HttpResponseMessage(HttpStatusCode.OK);
                response.Content = new StreamContent(dataModel.Stream);
                response.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
                {
                    FileName = dataModel.FileName, Size = dataModel.Stream.Length
                };
                response.Content.Headers.ContentType = new MediaTypeHeaderValue(MediaTypeHelper.GetMimeType(Path.GetExtension(dataModel.FileName)));
                return(response);
            }
            catch (Exception e)
            {
                _logger.Error(e);
                throw;
            }
        }
        public HttpResponseMessage GetResizeImage(Guid id, int height, int width)
        {
            try
            {
                var dataModel = _repo.GetResizeImage(id, height, width);
                if (dataModel.Stream.CanSeek)
                {
                    dataModel.Stream.Seek(0, SeekOrigin.Begin);
                }

                var response = new HttpResponseMessage(HttpStatusCode.OK);
                var content  = ((MemoryStream)dataModel.Stream).ToArray();
                response.Content = new ByteArrayContent(content);
                response.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
                {
                    FileName = dataModel.FileName, Size = content.Length
                };
                response.Content.Headers.ContentType = new MediaTypeHeaderValue(MediaTypeHelper.GetMimeType(Path.GetExtension(dataModel.FileName)));
                return(response);
            }
            catch (Exception e)
            {
                _logger.Error(e);
                throw;
            }
        }
Exemple #3
0
 public void TestConvertToImageFormatThrowsException_IfUnsupportedFortmat()
 {
     AssertExtensions.Throws <ArgumentException>(() => MediaTypeHelper.ConvertToImageFormat(new MediaTypeHeaderValue("image/bmp")));
     AssertExtensions.Throws <ArgumentException>(() => MediaTypeHelper.ConvertToImageFormat(new MediaTypeHeaderValue("image/emf")));
     AssertExtensions.Throws <ArgumentException>(() => MediaTypeHelper.ConvertToImageFormat(new MediaTypeHeaderValue("image/exif")));
     AssertExtensions.Throws <ArgumentException>(() => MediaTypeHelper.ConvertToImageFormat(new MediaTypeHeaderValue("image/gif")));
     AssertExtensions.Throws <ArgumentException>(() => MediaTypeHelper.ConvertToImageFormat(new MediaTypeHeaderValue("image/icon")));
     AssertExtensions.Throws <ArgumentException>(() => MediaTypeHelper.ConvertToImageFormat(new MediaTypeHeaderValue("image/jpeg")));
     AssertExtensions.Throws <ArgumentException>(() => MediaTypeHelper.ConvertToImageFormat(new MediaTypeHeaderValue("image/memorybmp")));
     AssertExtensions.Throws <ArgumentException>(() => MediaTypeHelper.ConvertToImageFormat(new MediaTypeHeaderValue("image/tiff")));
     AssertExtensions.Throws <ArgumentException>(() => MediaTypeHelper.ConvertToImageFormat(new MediaTypeHeaderValue("image/wmf")));
 }
Exemple #4
0
 public void TestConvertFromImageFormatThrowsException_IfUnsupportedFortmat()
 {
     AssertExtensions.Throws <ArgumentException>(() => MediaTypeHelper.ConvertFromImageFormat(ImageFormat.Bmp));
     AssertExtensions.Throws <ArgumentException>(() => MediaTypeHelper.ConvertFromImageFormat(ImageFormat.Emf));
     AssertExtensions.Throws <ArgumentException>(() => MediaTypeHelper.ConvertFromImageFormat(ImageFormat.Exif));
     AssertExtensions.Throws <ArgumentException>(() => MediaTypeHelper.ConvertFromImageFormat(ImageFormat.Gif));
     AssertExtensions.Throws <ArgumentException>(() => MediaTypeHelper.ConvertFromImageFormat(ImageFormat.Icon));
     AssertExtensions.Throws <ArgumentException>(() => MediaTypeHelper.ConvertFromImageFormat(ImageFormat.Jpeg));
     AssertExtensions.Throws <ArgumentException>(() => MediaTypeHelper.ConvertFromImageFormat(ImageFormat.MemoryBmp));
     AssertExtensions.Throws <ArgumentException>(() => MediaTypeHelper.ConvertFromImageFormat(ImageFormat.Tiff));
     AssertExtensions.Throws <ArgumentException>(() => MediaTypeHelper.ConvertFromImageFormat(ImageFormat.Wmf));
 }
Exemple #5
0
        /// <summary>
        /// Returns whether or not the current response is of Media Type image, based on MIME Type.
        /// </summary>
        /// <returns></returns>
        public bool IsImage()
        {
            bool            isImage = false;
            MediaTypeHelper mt      = new MediaTypeHelper();

            // Put this in two different conditions to catch unknown Media Types
            if (mt.Mappings.ContainsKey(Content.MimeType))
            {
                if (mt.Mappings[Content.MimeType] == MediaTypes.IMAGE)
                {
                    isImage = true;
                }
            }
            else
            {
                throw new NotImplementedException("The provided Media Type (" + Content.MimeType + ") is unknown.");
            }
            return(isImage);
        }
        public void ValidateImage(byte[] imageBytes, MediaTypeHeaderValue contentType)
        {
            try
            {
                ImageFormat format = MediaTypeHelper.ConvertToImageFormat(contentType);

                MemoryStream memoryStream = new MemoryStream(imageBytes);
                var          image        = Image.FromStream(memoryStream);

                if (!format.Equals(image.RawFormat))
                {
                    throw new ArgumentException("The image format does not match the content type.");
                }
            }
            catch (ArgumentException formatException)
            {
                throw new InputValidationException(HttpStatusCode.BadRequest, formatException.Message);
            }
        }
        private async Task <HttpResponseMessage> ExecuteGetAsync(params object[] parameters)
        {
            var city   = (string)parameters[0];
            var date   = (string)parameters[1];
            var newsId = (string)parameters[2];

            await this.ValidateGetOperation(city, date, newsId);

            Image image = await this.imageRepository.GetNewsImage(city, DateTime.Parse(date), Guid.Parse(newsId));

            var memoryStream = new MemoryStream();

            image.Save(memoryStream, ImageFormat.Png);

            HttpResponseMessage response = this.Request.CreateResponse(HttpStatusCode.OK);

            response.Content = new StreamContent(memoryStream);
            response.Content.Headers.ContentType = MediaTypeHelper.ConvertFromImageFormat(image.RawFormat);

            return(response);
        }
Exemple #8
0
 public void TestConvertToImageFormat()
 {
     Assert.AreEqual(ImageFormat.Png, MediaTypeHelper.ConvertToImageFormat(new MediaTypeHeaderValue("image/png")));
 }