/// <summary> /// Executes this command. /// </summary> /// <param name="imageId">The image id.</param> /// <returns>The view model.</returns> public ImageViewModel Execute(Guid imageId) { var image = Repository.First <MediaImage>(imageId); var dimensionsCalculator = new ImageDimensionsCalculator(image); return(new ImageViewModel { Id = image.Id.ToString(), Caption = image.Caption, Title = image.Title, Description = image.Description, Url = FileUrlResolver.EnsureFullPathUrl(image.PublicUrl), ThumbnailUrl = FileUrlResolver.EnsureFullPathUrl(image.PublicThumbnailUrl), Version = image.Version.ToString(CultureInfo.InvariantCulture), FileName = image.OriginalFileName, FileExtension = image.OriginalFileExtension, FileSize = image.SizeAsText(), ImageWidth = image.Width, ImageHeight = image.Height, CroppedWidth = dimensionsCalculator.ResizedCroppedWidth, CroppedHeight = dimensionsCalculator.ResizedCroppedHeight, OriginalImageWidth = image.OriginalWidth, OriginalImageHeight = image.OriginalHeight, ImageAlign = image.ImageAlign.HasValue ? image.ImageAlign.Value : MediaImageAlign.Center, CropCoordX1 = image.CropCoordX1.HasValue ? image.CropCoordX1.Value : 0, CropCoordY1 = image.CropCoordY1.HasValue ? image.CropCoordY1.Value : 0, CropCoordX2 = image.CropCoordX2.HasValue ? image.CropCoordX2.Value : image.OriginalWidth, CropCoordY2 = image.CropCoordY2.HasValue ? image.CropCoordY2.Value : image.OriginalHeight, OriginalImageUrl = FileUrlResolver.EnsureFullPathUrl(image.PublicOriginallUrl + string.Format("?{0}", DateTime.Now.ToString(MediaManagerModuleDescriptor.HardLoadImageDateTimeFormat))), FolderId = image.Folder != null ? image.Folder.Id : (Guid?)null, Tags = TagService.GetMediaTagNames(imageId), Categories = CategoryService.GetSelectedCategories <Media, MediaCategory>(imageId).ToList(), CategoriesFilterKey = image.GetCategorizableItemKey() }); }
/// <summary> /// Fills the media view model with entity data. /// </summary> /// <param name="model">The model.</param> /// <param name="media">The media.</param> protected void FillMediaViewModel(MediaViewModel model, Media media) { model.Id = media.Id; model.Version = media.Version; model.Name = media.Title; model.CreatedOn = media.CreatedOn; model.Type = media.Type; model.IsArchived = media.IsArchived; model.ParentFolderId = media.Folder != null ? media.Folder.Id : Guid.Empty; model.ParentFolderName = media.Folder != null ? media.Folder.Title : MediaGlobalization.MediaList_RootFolderName; model.Tooltip = media.Image != null && !media.Image.IsDeleted ? media.Image.Caption : null; model.ThumbnailUrl = media.Image != null && !media.Image.IsDeleted ? FileUrlResolver.EnsureFullPathUrl(media.Image.PublicThumbnailUrl) : null; }
/// <summary> /// Creates the image view model. /// </summary> /// <param name="media">The media.</param> /// <returns>Created image view model</returns> protected override MediaViewModel ToViewModel(Media media) { var image = media as MediaImage; if (image != null) { var model = new MediaImageViewModel(); FillMediaFileViewModel(model, image); model.Tooltip = image.Caption; model.ThumbnailUrl = FileUrlResolver.EnsureFullPathUrl(image.PublicThumbnailUrl); model.IsProcessing = image.IsUploaded == null || image.IsThumbnailUploaded == null || image.IsOriginalUploaded == null; model.IsFailed = image.IsUploaded == false || image.IsThumbnailUploaded == false || image.IsOriginalUploaded == false; return(model); } throw new InvalidOperationException("Cannot convert image media to image view model. Wrong entity passed."); }
/// <summary> /// Creates the image view model. /// </summary> /// <param name="media">The media.</param> /// <returns>Created image view model</returns> protected override MediaViewModel ToViewModel(Media media) { var image = media as MediaImage; if (image != null) { var model = new MediaImageViewModel(); FillMediaFileViewModel(model, image); var dimensionsCalculator = new ImageDimensionsCalculator(image); model.Tooltip = image.Caption; model.ThumbnailUrl = FileUrlResolver.EnsureFullPathUrl(image.PublicThumbnailUrl + string.Format("?{0}", DateTime.Now.ToString(MediaManagerModuleDescriptor.HardLoadImageDateTimeFormat))); model.IsProcessing = image.IsUploaded == null || image.IsThumbnailUploaded == null || image.IsOriginalUploaded == null; model.IsFailed = image.IsUploaded == false || image.IsThumbnailUploaded == false || image.IsOriginalUploaded == false; model.Height = dimensionsCalculator.ResizedCroppedHeight; model.Width = dimensionsCalculator.ResizedCroppedWidth; return(model); } throw new InvalidOperationException("Cannot convert image media to image view model. Wrong entity passed."); }
/// <summary> /// Fills the media file view model with entity data. /// </summary> /// <param name="model">The model.</param> /// <param name="media">The media.</param> protected void FillMediaFileViewModel(MediaFileViewModel model, MediaFile media) { FillMediaViewModel(model, media); model.PublicUrl = FileService.GetDownloadFileUrl(MediaType.File, media.Id, FileUrlResolver.EnsureFullPathUrl(media.PublicUrl)); model.FileExtension = media.OriginalFileExtension; model.Size = media.Size; model.IsProcessing = media.IsUploaded == null; model.IsFailed = media.IsUploaded == false; if (Configuration.Security.AccessControlEnabled && !(media is IAccessControlDisabled)) { SetIsReadOnly(model, ((IAccessSecuredObject)media).AccessRules); } }