Пример #1
0
        public IActionResult DownloadPhoto(int id)
        {
            Photo photo = _photoRepository.GetphotoByID(id);

            if (photo == null)
            {
                return(RedirectToAction("Index"));
            }

            DownloadPhotoViewModel dpvm = Helpers.Helpers.GetDownloadPhotoViewModelFromPhoto(photo);

            return(View(dpvm));
        }
Пример #2
0
        internal static DownloadPhotoViewModel GetDownloadPhotoViewModelFromPhoto(Photo photo)
        {
            DownloadPhotoViewModel dpvm = new DownloadPhotoViewModel();

            dpvm.AvailableActions       = GetAvailableActions();
            dpvm.AvailableFormats       = GetAvailableFormats();
            dpvm.ResizeWidth            = photo.Width;
            dpvm.ResizeHeight           = photo.Height;
            dpvm.PhotoUrl               = photo.Url;
            dpvm.OriginalImageExtension = Path.GetExtension(photo.Url).Substring(1);

            return(dpvm);
        }
Пример #3
0
        public IActionResult DownloadPhoto(DownloadPhotoViewModel model)
        {
            IEnumerable <MutationAction> actions = Newtonsoft.Json.JsonConvert.DeserializeObject <IEnumerable <MutationAction> >(model.ActionList);

            var extension = model.OriginalImageExtension;

            if (model.DoConversion)
            {
                extension = model.ConversionExtension;
            }

            byte[] fileBytes = Helpers.Helpers.PerformMutations(model.PhotoUrl, extension, actions, Request, _mutationActionFactorySelector);

            _logger.Log(CurrentUser.Id, $"Downloaded photo with actions: ${model.ActionList} in format: ${extension}");

            return(File(fileBytes, "application/force-download", Path.GetFileNameWithoutExtension(model.PhotoUrl) + "." + extension));
        }