Ejemplo n.º 1
0
        private static string getImageUrl(Data.Models.Media media, string type)
        {
            var baseUrl = Path.Combine(Environment.GetEnvironmentVariable("STATIC_BASE_URL"), "Images");

            if (type == MediaSize.Original)
            {
                return(Path.Combine(baseUrl, media.LocalFilename));
            }

            if (MediaSize.Compare(media.LargestResize, type) >= 0)
            {
                return(Path.Combine(baseUrl, type, media.LocalFilename));
            }

            return(null);
        }
Ejemplo n.º 2
0
        public async Task <IActionResult> Create([FromForm] IFormFile file)
        {
            var baseUrl  = Path.Combine(Environment.GetEnvironmentVariable("STATIC_BASE_URL"), "Images");
            var basePath = Path.Combine(Environment.GetEnvironmentVariable("STATIC_BASE_PATH"), "Images");

            var newMedia = new Data.Models.Media {
                OriginalFilename = file.FileName,
                Caption          = file.FileName,
            };

            using (var memoryStream = new MemoryStream()) {
                file.CopyTo(memoryStream);
                memoryStream.Position = 0;
                using (var image = await Media.ImageOperations.Load(memoryStream)) {
                    image.FileName         = $"{Guid.NewGuid()}.{image.Extension}";
                    newMedia.MimeType      = image.MimeType;
                    newMedia.LocalFilename = image.FileName;
                    newMedia.LargestResize = await Media.ImageOperations.SaveVariants(image, basePath);
                }
            }

            _context.Medias.Add(newMedia);
            _context.SaveChanges();

            return(Ok(new MediaSummary {
                Id = newMedia.Id,
                Caption = "Image number " + 0,
                Credit = "Nathan",
                CreditUrl = "https://leggonews.com",
                OriginalUrl = Path.Combine(baseUrl, newMedia.LocalFilename),
                ThumbnailUrl = Path.Combine(baseUrl, "thumbnail", newMedia.LocalFilename),
                SmallSizeUrl = Path.Combine(baseUrl, "small", newMedia.LocalFilename),
                MediumSizeUrl = Path.Combine(baseUrl, "medium", newMedia.LocalFilename),
                LargeSizeUrl = Path.Combine(baseUrl, "large", newMedia.LocalFilename),
            }));
        }