예제 #1
0
        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)
            });
        }
예제 #3
0
        /// <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);
        }
예제 #4
0
        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));
        }