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)); }
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); }
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)); }