public IList <string> GetDisplayPluginsFor(Enums.DisplayTemplate displayTemplate)
        {
            ThemeEntry          currentTheme           = null;
            ExtensionDescriptor currentThemeDescriptor = _siteThemeService.GetSiteTheme();

            if (currentThemeDescriptor != null)
            {
                currentTheme = new ThemeEntry(currentThemeDescriptor);
            }
            System.Configuration.Configuration config;
            try {
                config = _localConfiguration.GetConfiguration(currentTheme.Descriptor.Path.StartsWith("~/Themes/") ? currentTheme.Descriptor.Path : "" + "~/Themes/" + currentTheme.Descriptor.Path);
                return(config.AppSettings.Settings["DisplayPluginsFor" + displayTemplate.ToString()].Value.Split(new string[] { ",", ";", "|" }, StringSplitOptions.RemoveEmptyEntries)
                       .Select(s => displayTemplate + " - " + s.Trim()).ToList());
            } catch {
                return(null);
            } finally {
                config = null;
            }
        }
        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);
        }