public ActionResult Index(IContent currentContent) { //As the layout requires a page for title etc we "borrow" the start page var startPage = _contentLoader.Get <StartPage>(SiteDefinition.Current.StartPage); var model = new PreviewModel(startPage, currentContent); var supportedDisplayOptions = _displayOptions .Select(x => new { Tag = x.Tag, Name = x.Name, Supported = SupportsTag(currentContent, x.Tag) }) .ToList(); if (supportedDisplayOptions.Any(x => x.Supported)) { foreach (var displayOption in supportedDisplayOptions) { var contentArea = new ContentArea(); contentArea.Items.Add(new ContentAreaItem { ContentLink = currentContent.ContentLink }); var areaModel = new PreviewModel.PreviewArea { Supported = displayOption.Supported, AreaTag = displayOption.Tag, AreaName = displayOption.Name, ContentArea = contentArea }; model.Areas.Add(areaModel); } } return(View(model)); }
public ActionResult Index(IContent currentContent) { //As the layout requires a page for title etc we "borrow" the start page var startPage = _contentLoader.Get <HomePage>(ContentReference.StartPage); var model = new PreviewModel(startPage, currentContent); var supportedDisplayOptions = _displayOptions .Select(x => new { x.Tag, x.Name, Supported = SupportsTag(currentContent, x.Tag) }).ToList(); if (!supportedDisplayOptions.Any(x => x.Supported)) { return(new ViewResult { ViewName = "~/Features/Preview/Views/Index.cshtml", ViewData = { Model = model } }); } foreach (var displayOption in supportedDisplayOptions) { var contentArea = new ContentArea(); contentArea.Items.Add(new ContentAreaItem { ContentLink = currentContent.ContentLink }); var areaModel = new PreviewModel.PreviewArea { Supported = displayOption.Supported, AreaTag = displayOption.Tag, AreaName = displayOption.Name, ContentArea = contentArea }; model.Areas.Add(areaModel); } return(new ViewResult { ViewName = "~/Features/Preview/Views/Index.cshtml", ViewData = new ViewDataDictionary <PreviewModel>(ViewData, model) }); }
/// <summary> /// Returns a new preview area for the block based on the display option. /// </summary> /// <param name="displayOptionName">The display option name.</param> /// <param name="displayOptionTag">The display option tag (i.e. the specific CSS class for the container element).</param> /// <param name="currentContent">An instance of the current block and its content.</param> /// <param name="cssClass">Css class</param> /// <returns>An instance of a new 'PreviewModel.PreviewArea' object.</returns> private static PreviewModel.PreviewArea NewPreviewArea(string displayOptionName, string displayOptionTag, IContent currentContent, string cssClass = "") { var contentArea = new ContentArea(); contentArea.Items.Add(new ContentAreaItem { ContentLink = currentContent.ContentLink }); var previewArea = new PreviewModel.PreviewArea { AreaName = displayOptionName, AreaTag = displayOptionTag, ContentArea = contentArea, CssClass = cssClass }; return(previewArea); }
public ActionResult Index(IContent currentContent) { //As the layout requires a page for title etc we "borrow" the start page var startPage = _contentLoader.Get <StartPage>(SiteDefinition.Current.StartPage); var model = new PreviewModel(startPage, currentContent); var contentArea = new ContentArea(); contentArea.Items.Add(new ContentAreaItem { ContentLink = currentContent.ContentLink }); var areaModel = new PreviewModel.PreviewArea { ContentArea = contentArea, Supported = true }; model.Areas.Add(areaModel); return(View(model)); }