예제 #1
0
        private MediaFileViewModel Convert(MediaFile file)
        {
            MediaFileViewModel model;
            bool isProcessing = !file.IsUploaded.HasValue;
            bool isFailed     = file.IsUploaded.HasValue && !file.IsUploaded.Value;

            if (file.Type == MediaType.File)
            {
                model = new MediaFileViewModel();

                if (cmsConfiguration.Security.AccessControlEnabled)
                {
                    SetIsReadOnly(model, ((IAccessSecuredObject)file).AccessRules);
                }
            }
            else if (file.Type == MediaType.Audio)
            {
                model = new MediaAudioViewModel();
            }
            else if (file.Type == MediaType.Video)
            {
                model = new MediaVideoViewModel();
            }
            else if (file.Type == MediaType.Image)
            {
                var imageFile = (MediaImage)file;
                model = new MediaImageViewModel
                {
                    ThumbnailUrl = imageFile.PublicThumbnailUrl,
                    Tooltip      = imageFile.Title
                };
                isProcessing = isProcessing || !imageFile.IsOriginalUploaded.HasValue || !imageFile.IsThumbnailUploaded.HasValue;
                isFailed     = isFailed ||
                               (imageFile.IsOriginalUploaded.HasValue && !imageFile.IsOriginalUploaded.Value) ||
                               (imageFile.IsThumbnailUploaded.HasValue && !imageFile.IsThumbnailUploaded.Value);
            }
            else
            {
                throw new CmsException(string.Format("A file type {0} is not supported.", file.Type));
            }

            model.Id            = file.Id;
            model.Name          = file.Title;
            model.Type          = file.Type;
            model.Version       = file.Version;
            model.ContentType   = MediaContentType.File;
            model.PublicUrl     = fileService.GetDownloadFileUrl(file.Type, file.Id, file.PublicUrl);
            model.FileExtension = file.OriginalFileExtension;
            model.IsProcessing  = isProcessing;
            model.IsFailed      = isFailed;

            return(model);
        }
예제 #2
0
        private MediaFileViewModel Convert(MediaFile file)
        {
            MediaFileViewModel model;
            bool isProcessing = !file.IsUploaded.HasValue;
            bool isFailed     = file.IsUploaded.HasValue && !file.IsUploaded.Value;

            if (file.Type == MediaType.File)
            {
                model = new MediaFileViewModel();
            }
            else if (file.Type == MediaType.Audio)
            {
                model = new MediaAudioViewModel();
            }
            else if (file.Type == MediaType.Video)
            {
                model = new MediaVideoViewModel();
            }
            else if (file.Type == MediaType.Image)
            {
                var imageFile = (MediaImage)file;
                model = new MediaImageViewModel {
                    ThumbnailUrl = imageFile.PublicThumbnailUrl,
                    Tooltip      = imageFile.Title
                };
                isProcessing = isProcessing || !imageFile.IsOriginalUploaded.HasValue || !imageFile.IsThumbnailUploaded.HasValue;
                isFailed     = isFailed ||
                               (imageFile.IsOriginalUploaded.HasValue && !imageFile.IsOriginalUploaded.Value) ||
                               (imageFile.IsThumbnailUploaded.HasValue && !imageFile.IsThumbnailUploaded.Value);
            }
            else
            {
                throw new CmsException(string.Format("A file type {0} is not supported.", file.Type));
            }

            model.Id            = file.Id;
            model.Name          = file.Title;
            model.Type          = file.Type;
            model.Version       = file.Version;
            model.ContentType   = MediaContentType.File;
            model.PublicUrl     = file.PublicUrl;
            model.FileExtension = file.OriginalFileExtension;
            model.IsProcessing  = isProcessing;
            model.IsFailed      = isFailed;

            return(model);
        }