protected override DriverResult Display(HighlightsGroupPart part, string displayType, dynamic shapeHelper) { ViewsInfos viewsInfos = _HighlightsService.ChooseView(part); var group = new HighlightsGroupViewModel { Id = part.Id, DisplayPlugin = part.DisplayPlugin, DisplayTemplate = part.DisplayTemplate, ItemsSourceType = part.ItemsSourceType, }; IEnumerable <dynamic> items = null; IList <dynamic> fromQueryItems = new List <dynamic>(); if (part.ItemsSourceType == Enums.ItemsSourceTypes.ByHand) { items = _HighlightsService.GetHighlightsItemsContentByGroupId(part.Id, part.DisplayTemplate, part.DisplayPlugin, viewsInfos.SuffixShapeName.Replace("_", "")); } else if (part.ItemsSourceType == Enums.ItemsSourceTypes.FromQuery) { var queryItems = _projectionManager.GetContentItems(part.Query_Id, 0, 10); fromQueryItems = _HighlightsService.MapContentToHighlightsItemsViewModel(queryItems, part.DisplayTemplate, part.DisplayPlugin, viewsInfos); } var dict = new Dictionary <string, object> { { "HighlightsGroup", group }, { "HighlightsItems", part.ItemsSourceType == Enums.ItemsSourceTypes.FromQuery?fromQueryItems:items } }; var args = Arguments.From(dict.Values, dict.Keys); return(ContentShape(viewsInfos.ResultShapeName, () => _shapeFactory.Create(viewsInfos.ResultShapeName, args))); //return null; }
protected override DriverResult Display(HighlightsItemPart part, String displayType, dynamic shapeHelper) { ViewsInfos viewInfos = _HighlightsService.ChooseView(part); var dict = new Dictionary <string, object> { { "HighlightsItem", _HighlightsService.MapContentToHighlightsItemViewModel(part) }, { "DisplayTemplate", displayType } }; var args = Arguments.From(dict.Values, dict.Keys); return(ContentShape( viewInfos.ResultShapeName, () => _shapeFactory.Create(viewInfos.ResultShapeName, args))); }
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); }