public dynamic MapContentToHighlightsItemViewModel(HighlightsItemPart itemPart) { var title = itemPart.ContentItem.As <TitlePart>(); dynamic body = itemPart.Fields.First(f => f.Name == "MediaText"); var mediaUrl = ""; try { var mediaContainerPart = itemPart.ContentItem.Parts.Where(w => w.Fields.SingleOrDefault(w1 => w1.GetType() == typeof(MediaLibraryPickerField)) != null).FirstOrDefault(); MediaLibraryPickerField mediafield = (MediaLibraryPickerField)mediaContainerPart.Fields.FirstOrDefault(w => w.GetType() == typeof(MediaLibraryPickerField)); mediaUrl = mediafield.MediaParts.ToList()[0].MediaUrl; } catch { } string displayUrl = ContentItemExtensions.ItemDisplayUrl(new UrlHelper(new RequestContext( new HttpContextWrapper(HttpContext.Current), new RouteData()), RouteTable.Routes), itemPart); var HLItem = new HighlightsItemViewModel { Title = title != null ? title.Title : "", TitleSize = itemPart.TitleSize, SubTitle = itemPart.Sottotitolo, Body = body != null ? body.Value : "", ItemOrder = itemPart.ItemOrder, LinkTarget = itemPart.LinkTarget, LinkUrl = itemPart.LinkUrl, LinkText = itemPart.LinkText, GroupShapeName = itemPart.GroupShapeName, MediaUrl = mediaUrl, Video = itemPart.Video, GroupDisplayTemplate = itemPart.GroupDisplayTemplate, GroupDisplayPlugin = itemPart.GroupDisplayPlugin, Content = itemPart.ContentItem }; return(HLItem); }
public IList <dynamic> MapContentToHighlightsItemsViewModel(IEnumerable <ContentItem> queryItems, Enums.DisplayTemplate displayTemplate, string displayPlugin, ViewsInfos viewsInfos) { var order = 0; IList <dynamic> fromQueryItems = new List <dynamic>(); foreach (var queryItem in queryItems) { var title = queryItem.As <TitlePart>(); var body = queryItem.As <BodyPart>(); var bodyText = ""; if (body == null) { try { var mediaContainerPart = queryItem.Parts.Where(w => w.Fields.SingleOrDefault(w1 => w1.GetType() == typeof(TextField)) != null).FirstOrDefault(); TextField textfield = (TextField)mediaContainerPart.Fields.FirstOrDefault(w => w.GetType() == typeof(TextField)); bodyText = textfield.Value; } catch { } } else { bodyText = body.Text; } var mediaUrl = ""; try { var mediaContainerPart = queryItem.Parts.Where(w => w.Fields.SingleOrDefault(w1 => w1.GetType() == typeof(MediaLibraryPickerField)) != null && w.GetType() == typeof(ContentPart)).FirstOrDefault(); MediaLibraryPickerField mediafield = (MediaLibraryPickerField)mediaContainerPart.Fields.FirstOrDefault(w => w.GetType() == typeof(MediaLibraryPickerField)); mediaUrl = mediafield.MediaParts.ToList()[0].MediaUrl; } catch { } string displayUrl = ContentItemExtensions.ItemDisplayUrl(new UrlHelper(new RequestContext( new HttpContextWrapper(HttpContext.Current), new RouteData()), RouteTable.Routes), queryItem); var HLItem = new HighlightsItemViewModel { Title = title != null ? title.Title : "", TitleSize = "", Body = bodyText, ItemOrder = order, LinkTarget = Enums.LinkTargets._self, LinkUrl = displayUrl, GroupShapeName = viewsInfos.SuffixShapeName.Replace("_", ""), LinkText = T("Details").Text, MediaUrl = mediaUrl, Video = false, GroupDisplayTemplate = displayTemplate, GroupDisplayPlugin = displayPlugin, Content = queryItem }; fromQueryItems.Add(HLItem); order++; } return(fromQueryItems); }