Пример #1
0
        public IActionResult Get(string file, int width, int height, string backgroundColour = null,
                                 string watermark = null, string fileType = "png")
        {
            try
            {
                var criteriaBuilder = ImageCriteria.NewBuilder()
                                      .SetSize(width, height)
                                      .SetImageFormat(ParseFormat(fileType));

                if (backgroundColour != null)
                {
                    criteriaBuilder.SetBackgroundColour(backgroundColour);
                }

                if (watermark != null)
                {
                    criteriaBuilder.SetWatermark(watermark);
                }

                var criteria = criteriaBuilder.Build(file);

                var imageBytes = _imageFetcher.Fetch(criteria);

                return(File(imageBytes, criteria.Format.MimeType()));
            } catch (ArgumentException ex)
            {
                return(BadRequest(new { errorMessage = ex.Message }));
            } catch (Exception ex)
            {
                _logger.LogError("Failed to fetch image " + ex.Message);
                return(StatusCode(500));
            }
        }
Пример #2
0
        public void TestRGBCriteria()
        {
            var criteria = ImageCriteria.NewBuilder()
                           .SetBackgroundColour("255,0,0")
                           .Build("test.pdf");

            Assert.AreEqual(ImageFormat.Png, criteria.Format);
            Assert.AreEqual(Tuple.Create(255, 0, 0), criteria.RGBBackgroundColour);
        }
Пример #3
0
        public void TestDefaultCriteria()
        {
            var criteria = ImageCriteria.NewBuilder()
                           .Build("test.pdf");

            Assert.AreEqual("test.pdf", criteria.File);
            Assert.AreEqual(ImageFormat.Png, criteria.Format);
            Assert.AreEqual(null, criteria.RGBBackgroundColour);
        }
Пример #4
0
        public void TestInvalidCriteriaThrowsException()
        {
            Assert.Throws <ArgumentException>(() => ImageCriteria.NewBuilder()
                                              .SetBackgroundColour(""));

            Assert.Throws <ArgumentException>(() => ImageCriteria.NewBuilder()
                                              .SetSize(100000, 1000000));

            Assert.Throws <ArgumentException>(() => ImageCriteria.NewBuilder()
                                              .SetSize(-1, -20));
        }
 public MainViewModel()
 {
     Criteria = new ImageCriteria();
     Images = new ObservableCollection<Image>();
 }