public virtual ActionResult Render(ContentPanelModel model) { var viewModel = new ContentPanelViewModel { IsImportant = model.IsImportant, TitleLink = string.IsNullOrEmpty(Convert.ToString(model.TitleLink)) ? null : model.TitleLink.link, Title = model.Title, HasTitle = !string.IsNullOrEmpty(model.Title), ImageVideoSize = model.ImageVideoSize, Description = model.Description, LinksListTitle = model.LinksListTitle }; viewModel.Target = viewModel.TitleLink.HasValue() ? model.TitleLink?.target : string.Empty; viewModel.HasMedia = model.Image.HasValue; viewModel.PosterImageUrl = viewModel.HasMedia ? _imageHelper.GetImageWithPreset(GetMediaUrl(model.Image.Value), UmbracoAliases.ImagePresets.Preview) : null; viewModel.VideoUrl = GetUrl(model.VideoLink); viewModel.ShowAsLightbox = model.VideoType == "lightbox"; viewModel.VideoLinkAlternativeText = model.VideoLink.altText; if (!string.IsNullOrEmpty(viewModel.VideoUrl)) { viewModel.VideoSourceType = (VideoSourceTypes)model.VideoLink.sourceType; viewModel.VideoTooltip = model.VideoLink.altText.ToString(); viewModel.VideoSrc = model.VideoLink.embedUrl; viewModel.AutoplayVideo = "autoplay"; viewModel.AutoplayIframe = "?autoplay=1"; } if (viewModel.PosterImageUrl.HasValue()) { viewModel.VideoSrc = string.Empty; } if (viewModel.VideoSourceType == VideoSourceTypes.Vimeo || viewModel.VideoSourceType == VideoSourceTypes.Youtube) { viewModel.EmbedUrl = model.VideoLink.embedUrl + viewModel.AutoplayIframe; } else { viewModel.EmbedUrl = model.VideoLink.embedUrl; } if (model.Links != null && model.Links.Count > 0) { foreach (var link in model.Links) { viewModel.Links.Add(new ContentPanelLinkViewModel { Caption = link.caption, Target = link.target, Url = GetLinkUrl(link) }); } } if (model.Files != null) { var fileIds = model.Files.ToIntCollection(); viewModel.Files = _umbracoHelper.TypedMedia(fileIds) .Select(el => new ContentPanelFileViewModel { Url = el.Url, Extension = el.GetMediaExtension().ToExtensionViewString(), Name = el.Name }) .ToList(); } return(View(ViewPath, viewModel)); }
private ContentPanelModel GetBannerFromCache(AbstractBanner banner) { if (_contentCache.ContainsKey(banner.Name)) { var cachedContent = _contentCache[banner.Name]; cachedContent.RestoreOriginalValues(); return cachedContent; } var content = new ContentPanelModel(this); content.LoadContent<DependencyObject>(banner); if (banner.Cache) _contentCache[banner.Name] = content; return content; }