public override object Display(WidgetDisplayContext widgetDisplayContext)
        {
            var widget = widgetDisplayContext.Widget as ProductGalleryWidget;
            ProductGalleryWidgetViewModel viewModel = new ProductGalleryWidgetViewModel {
                DetailPageUrl = widget.DetailPageUrl
            };
            var productGallery = _productGalleryService.Get(widget.ProductGalleryId);

            if (productGallery == null || productGallery.Products.Count() == 0)
            {
                viewModel.Products = Enumerable.Empty <ProductEntity>();
            }
            else
            {
                var productIds = productGallery.Products.Where(m => m.Product != null && m.Status == (int)RecordStatus.Active)
                                 .Select(m => m.Product.ProductID)
                                 .ToArray();

                viewModel.Products = _productService
                                     .Get(m => productIds.Contains(m.ID) && m.IsPublish && m.Status == (int)RecordStatus.Active)
                                     .OrderBy(m => Array.IndexOf(productIds, m.ID))
                                     .ToList();
            }
            return(viewModel);
        }
Example #2
0
        public override object Display(WidgetDisplayContext widgetDisplayContext)
        {
            ArticleTypeWidget currentWidget = widgetDisplayContext.Widget as ArticleTypeWidget;
            var         types         = _articleTypeService.Get(m => m.ParentID == currentWidget.ArticleTypeID);
            var         actionContext = widgetDisplayContext.ActionContext;
            int         ac            = actionContext.RouteData.GetCategory();
            ArticleType articleType   = null;

            if (ac > 0)
            {
                articleType = _articleTypeService.Get(ac);
            }
            if (actionContext.RouteData.GetCategoryUrl().IsNullOrEmpty() && articleType != null)
            {
                if (articleType.Url.IsNotNullAndWhiteSpace())
                {
                    actionContext.RedirectTo($"{actionContext.RouteData.GetPath()}/{articleType.Url}", true);
                }
            }
            if (articleType != null && articleType.SEOTitle.IsNotNullAndWhiteSpace())
            {
                var layout = widgetDisplayContext.PageLayout;
                if (layout != null && layout.Page != null)
                {
                    layout.Page.Title           = articleType.SEOTitle;
                    layout.Page.MetaKeyWorlds   = articleType.SEOKeyWord;
                    layout.Page.MetaDescription = articleType.SEODescription;
                }
            }
            return(new ArticleTypeWidgetViewModel
            {
                ArticleTypes = types,
                ArticleTypeID = ac
            });
        }
        public override object Display(WidgetDisplayContext widgetDisplayContext)
        {
            var           viewModel     = new ArticleDetailViewModel();
            var           articleWidget = widgetDisplayContext.Widget as ArticleSpecialDetailWidget;
            ArticleEntity article       = null;
            int           articleId     = articleWidget.ArticleId ?? 0;

            if (articleId > 0)
            {
                article = _articleService.Get(articleId);
            }
            else if (articleWidget.ArticleName.IsNotNullAndWhiteSpace())
            {
                article = _articleService.GetByUrl(articleWidget.ArticleName);
            }
            if (article == null)
            {
                widgetDisplayContext.ActionContext.NotFoundResult();
            }
            else
            {
                _articleService.IncreaseCount(article);
                var layout = widgetDisplayContext.PageLayout;
                if (layout != null && layout.Page != null)
                {
                    layout.Page.ConfigSEO(article.Title, article.MetaKeyWords, article.MetaDescription);
                }
            }
            viewModel.Current = article;

            return(viewModel);
        }
Example #4
0
        public override object Display(WidgetDisplayContext widgetDisplayContext)
        {
            var actionContext = widgetDisplayContext.ActionContext;
            var comments      = _commentsService.Get(m => m.PagePath == actionContext.HttpContext.Request.Path.Value && m.Status == (int)RecordStatus.Active);

            return(comments);
        }
        public override WidgetViewModelPart Display(WidgetDisplayContext widgetDisplayContext)
        {
            ProductCategoryWidget currentWidget = widgetDisplayContext.Widget as ProductCategoryWidget;
            var             actionContext       = widgetDisplayContext.ActionContext;
            int             cate            = actionContext.RouteData.GetCategory();
            ProductCategory productCategory = null;

            if (cate > 0)
            {
                productCategory = _productCategoryService.Get(cate);
            }
            if (actionContext.RouteData.GetCategoryUrl().IsNullOrEmpty() && productCategory != null)
            {
                if (productCategory.Url.IsNotNullAndWhiteSpace())
                {
                    actionContext.RedirectTo($"{actionContext.RouteData.GetPath()}/{productCategory.Url}", true);
                }
            }
            if (productCategory != null && productCategory.SEOTitle.IsNotNullAndWhiteSpace())
            {
                var layout = widgetDisplayContext.PageLayout;
                if (layout != null && layout.Page != null)
                {
                    layout.Page.Title           = productCategory.SEOTitle;
                    layout.Page.MetaKeyWorlds   = productCategory.SEOKeyWord;
                    layout.Page.MetaDescription = productCategory.SEODescription;
                }
            }
            return(widgetDisplayContext.ToWidgetViewModelPart(new ProductCategoryWidgetViewModel
            {
                Categorys = _productCategoryService.Get(m => m.ParentID == currentWidget.ProductCategoryID),
                CurrentCategory = cate
            }));
        }
        public override object Display(WidgetDisplayContext widgetDisplayContext)
        {
            ProductCategoryWidget currentWidget = widgetDisplayContext.Widget as ProductCategoryWidget;
            var             actionContext       = widgetDisplayContext.ActionContext;
            int             cate            = actionContext.RouteData.GetCategory();
            ProductCategory productCategory = null;

            if (cate > 0)
            {
                productCategory = _productCategoryService.Get(cate);
            }
            if (actionContext.RouteData.GetCategoryUrl().IsNullOrEmpty() && productCategory != null)
            {
                if (productCategory.Url.IsNotNullAndWhiteSpace())
                {
                    actionContext.RedirectTo($"{actionContext.RouteData.GetPath()}/{productCategory.Url}", true);
                }
            }
            if (productCategory != null && productCategory.SEOTitle.IsNotNullAndWhiteSpace())
            {
                var layout = widgetDisplayContext.PageLayout;
                if (layout != null && layout.Page != null)
                {
                    layout.Page.ConfigSEO(productCategory.SEOTitle, productCategory.SEOKeyWord, productCategory.SEODescription);
                }
            }
            return(new ProductCategoryWidgetViewModel
            {
                Categorys = _productCategoryService.Get(m => m.Status == (int)RecordStatus.Active && m.ParentID == currentWidget.ProductCategoryID),
                CurrentCategory = cate
            });
        }
        public override WidgetViewModelPart Display(WidgetDisplayContext widgetDisplayContext)
        {
            if (widgetDisplayContext.Model is MessageEntity messageEntity)
            {
                return(widgetDisplayContext.ToWidgetViewModelPart(messageEntity));
            }

            return(widgetDisplayContext.ToWidgetViewModelPart(new MessageEntity()));
        }
Example #8
0
 public override object Display(WidgetDisplayContext widgetDisplayContext)
 {
     if (widgetDisplayContext.FormModel is Form form)
     {
         return(form);
     }
     form = _formService.Get((widgetDisplayContext.Widget as FormWidget).FormID);
     return(form);
 }
Example #9
0
 public override WidgetViewModelPart Display(WidgetDisplayContext widgetDisplayContext)
 {
     if (widgetDisplayContext.Model is Form form)
     {
         return(widgetDisplayContext.ToWidgetViewModelPart(form));
     }
     form = _formService.Get((widgetDisplayContext.Widget as FormWidget).FormID);
     return(widgetDisplayContext.ToWidgetViewModelPart(form));
 }
Example #10
0
        public override object Display(WidgetDisplayContext widgetDisplayContext)
        {
            if (widgetDisplayContext.FormModel is MessageEntity messageEntity)
            {
                return(messageEntity);
            }

            return(new MessageEntity());
        }
Example #11
0
        public override WidgetViewModelPart Display(WidgetDisplayContext widgetDisplayContext)
        {
            HtmlContentBuilder htmlContentBuilder = new HtmlContentBuilder();

            htmlContentBuilder.AppendHtmlLine("<!-- head:{0} -->".FormatWith(widgetDisplayContext.Widget.ID));
            htmlContentBuilder.AppendHtmlLine((widgetDisplayContext.Widget as HeadWidget).Content);
            htmlContentBuilder.AppendHtmlLine("<!-- end -->");
            ApplicationContext.As <CMSApplicationContext>().HeaderPart.Add(htmlContentBuilder);
            return(base.Display(widgetDisplayContext));
        }
Example #12
0
        public override object Display(WidgetDisplayContext widgetDisplayContext)
        {
            List <PageEntity> parentPages = new List <PageEntity>();
            var layout = widgetDisplayContext.PageLayout;

            if (layout != null && layout.Page != null)
            {
                GetParentPage(parentPages, layout.Page);
            }
            return(parentPages);
        }
        public override WidgetViewModelPart Display(WidgetDisplayContext widgetDisplayContext)
        {
            List <PageEntity> ParentPages = new List <PageEntity>();
            var layout = widgetDisplayContext.PageLayout;

            if (layout != null && layout.Page != null)
            {
                GetParentPage(ParentPages, layout.Page);
            }
            return(widgetDisplayContext.ToWidgetViewModelPart(ParentPages));
        }
Example #14
0
        public override object Display(WidgetDisplayContext widgetDisplayContext)
        {
            var carouselWidget = widgetDisplayContext.Widget as CarouselWidget;

            if (carouselWidget.CarouselID.HasValue)
            {
                carouselWidget.CarouselItems = _carouselItemService.Get(m => m.CarouselID == carouselWidget.CarouselID);
            }
            carouselWidget.CarouselItems = carouselWidget.CarouselItems.Where(m => m.Status == (int)RecordStatus.Active);
            return(carouselWidget);
        }
Example #15
0
        public override object Display(WidgetDisplayContext widgetDisplayContext)
        {
            var currentWidget = widgetDisplayContext.Widget as ArticleTopWidget;
            var viewModel     = new ArticleTopWidgetViewModel
            {
                Widget = currentWidget
            };
            var categoryIds = _articleTypeService.Get(m => m.ID == currentWidget.ArticleTypeID || m.ParentID == currentWidget.ArticleTypeID).Select(m => m.ID);

            viewModel.Articles = _articleService.Get(m => m.IsPublish && categoryIds.Contains(m.ArticleTypeID ?? 0)).OrderByDescending(m => m.PublishDate).Take(currentWidget.Tops ?? 10);
            return(viewModel);
        }
        public override object Display(WidgetDisplayContext widgetDisplayContext)
        {
            var currentWidget  = widgetDisplayContext.Widget as ArticleListWidget;
            var categoryEntity = _articleTypeService.Get(currentWidget.ArticleTypeID);
            var actionContext  = widgetDisplayContext.ActionContext;
            int pageIndex      = actionContext.RouteData.GetPage();
            int cate           = actionContext.RouteData.GetCategory();
            var pagin          = new Pagination
            {
                PageIndex         = pageIndex,
                PageSize          = currentWidget.PageSize ?? 20,
                OrderByDescending = "PublishDate"
            };
            IEnumerable <ArticleEntity> articles;

            Expression <Func <ArticleEntity, bool> > filter = null;

            if (cate != 0)
            {
                filter = m => m.IsPublish && m.ArticleTypeID == cate;
            }
            else
            {
                var ids = _articleTypeService.Get(m => m.ID == currentWidget.ArticleTypeID || m.ParentID == currentWidget.ArticleTypeID).Select(m => m.ID).ToList();
                if (ids.Any())
                {
                    filter = m => m.IsPublish && ids.Contains(m.ArticleTypeID ?? 0);
                }
                else
                {
                    filter = m => m.IsPublish && m.ArticleTypeID == currentWidget.ArticleTypeID;
                }
            }
            if (currentWidget.IsPageable)
            {
                articles = _articleService.Get(filter, pagin);
            }
            else
            {
                articles = _articleService.Get().Where(filter).OrderByDescending(m => m.PublishDate).ToList();
            }

            return(new ArticleListWidgetViewModel
            {
                Articles = articles,
                Widget = currentWidget,
                Pagin = pagin,
                CategoryTitle = categoryEntity == null ? "" : categoryEntity.Title,
                IsPageable = currentWidget.IsPageable
            });
        }
Example #17
0
        public override object Display(WidgetDisplayContext widgetDisplayContext)
        {
            VideoWidget videoWidget = widgetDisplayContext.Widget as VideoWidget;

            if (!videoWidget.Height.HasValue)
            {
                videoWidget.Height = 400;
            }

            if (videoWidget.Code.IsNotNullAndWhiteSpace() &&
                videoWidget.Code.StartsWith("<iframe ", StringComparison.OrdinalIgnoreCase) &&
                videoWidget.Code.IndexOf("style", StringComparison.OrdinalIgnoreCase) < 0)
            {
                videoWidget.Code = "<iframe style=\"width:100%;height:100%\" " + videoWidget.Code.Substring(8);
            }
            return(videoWidget);
        }
        public override object Display(WidgetDisplayContext widgetDisplayContext)
        {
            var actionContext = widgetDisplayContext.ActionContext;
            int articleId     = actionContext.RouteData.GetPost();
            var viewModel     = new ArticleDetailViewModel();

            if (articleId != 0)
            {
                viewModel.Current = actionContext.RouteData.GetArticle(articleId) ?? _articleService.Get(articleId);
                if (viewModel.Current != null)
                {
                    _articleService.IncreaseCount(viewModel.Current);
                    viewModel.Prev = _articleService.GetPrev(viewModel.Current);
                    viewModel.Next = _articleService.GetNext(viewModel.Current);
                    if (viewModel.Current.Url.IsNotNullAndWhiteSpace() && actionContext.RouteData.GetArticleUrl().IsNullOrWhiteSpace())
                    {
                        actionContext.RedirectTo($"{actionContext.RouteData.GetPath()}/{viewModel.Current.Url}.html", true);
                    }
                }
            }
            if (viewModel.Current == null && ApplicationContext.IsAuthenticated)
            {
                foreach (var item in _articleService.Get().AsQueryable().OrderByDescending(m => m.ID).Take(1))
                {
                    viewModel.Current = item;
                }
            }
            if (viewModel.Current == null)
            {
                actionContext.NotFoundResult();
            }
            else
            {
                var layout = widgetDisplayContext.PageLayout;
                if (layout != null && layout.Page != null)
                {
                    layout.Page.MetaKeyWorlds   = viewModel.Current.MetaKeyWords;
                    layout.Page.MetaDescription = viewModel.Current.MetaDescription;
                    layout.Page.Title           = viewModel.Current.Title;
                }
            }


            return(viewModel);
        }
        public override object Display(WidgetDisplayContext widgetDisplayContext)
        {
            ProductListWidget           currentWidget = widgetDisplayContext.Widget as ProductListWidget;
            IEnumerable <ProductEntity> products      = null;
            var actionContext = widgetDisplayContext.ActionContext;
            int pageIndex     = actionContext.RouteData.GetPage();
            int cate          = actionContext.RouteData.GetCategory();
            var pagin         = new Pagination
            {
                PageIndex        = pageIndex,
                PageSize         = currentWidget.PageSize ?? 20,
                OrderBy          = "OrderIndex",
                ThenByDescending = "ID"
            };

            Expression <Func <ProductEntity, bool> > filter = null;

            if (cate != 0)
            {
                filter = m => m.IsPublish && m.ProductCategoryID == cate;
            }
            else
            {
                var ids = _productCategoryService.Get(m => m.ID == currentWidget.ProductCategoryID || m.ParentID == currentWidget.ProductCategoryID).Select(m => m.ID).ToList();
                filter = m => m.IsPublish && ids.Contains(m.ProductCategoryID);
            }
            if (currentWidget.IsPageable)
            {
                products = _productService.Get(filter, pagin);
            }
            else
            {
                products = _productService.Get().Where(filter).OrderBy(m => m.OrderIndex).ThenByDescending(m => m.ID).ToList();
            }

            return(new ProductListWidgetViewModel
            {
                Products = products,
                Page = pagin,
                IsPageable = currentWidget.IsPageable,
                Columns = currentWidget.Columns,
                DetailPageUrl = currentWidget.DetailPageUrl
            });
        }
        public override WidgetViewModelPart Display(WidgetDisplayContext widgetDisplayContext)
        {
            var           actionContext = widgetDisplayContext.ActionContext;
            int           productId     = actionContext.RouteData.GetPost();
            ProductEntity product       = null;

            if (productId != 0)
            {
                product = actionContext.RouteData.GetProduct(productId) ?? _productService.Get(productId);
                if (product != null && product.Url.IsNotNullAndWhiteSpace() && actionContext.RouteData.GetProductUrl().IsNullOrWhiteSpace())
                {
                    actionContext.RedirectTo($"{actionContext.RouteData.GetPath()}/{product.Url}.html", true);
                }
            }
            if (product == null && ApplicationContext.IsAuthenticated)
            {
                product = _productService.Get().OrderByDescending(m => m.ID).FirstOrDefault();
                if (product != null)
                {
                    product = _productService.Get(product.ID);
                }
            }
            if (product == null)
            {
                actionContext.NotFoundResult();
            }
            if (product != null)
            {
                var layout = widgetDisplayContext.PageLayout;
                if (layout != null && layout.Page != null)
                {
                    var page = layout.Page;
                    page.MetaDescription = product.SEODescription;
                    page.MetaKeyWorlds   = product.SEOKeyWord;
                    page.Title           = product.SEOTitle ?? product.Title;
                }
            }

            return(widgetDisplayContext.ToWidgetViewModelPart(product ?? new ProductEntity()));
        }
        public override object Display(WidgetDisplayContext widgetDisplayContext)
        {
            var widget = widgetDisplayContext.Widget as ArticleGalleryWidget;
            ArticleGalleryWidgetViewModel viewModel = new ArticleGalleryWidgetViewModel {
                DetailPageUrl = widget.DetailPageUrl
            };
            var articleGallery = _articleGalleryService.Get(widget.ArticleGalleryId);

            if (articleGallery == null || articleGallery.Articles.Count() == 0)
            {
                viewModel.Articles = Enumerable.Empty <ArticleEntity>();
            }
            else
            {
                var articleIds = articleGallery.Articles.Where(m => m.Article != null && m.Status == (int)RecordStatus.Active)
                                 .Select(m => m.Article.ArticleID)
                                 .ToArray();

                viewModel.Articles = _articleService.Get(m => articleIds.Contains(m.ID) && m.IsPublish).OrderBy(m => Array.IndexOf(articleIds, m.ID)).ToList();
            }
            return(viewModel);
        }
Example #22
0
 public override object Display(WidgetDisplayContext widgetDisplayContext)
 {
     return(_messageService.Get(m => m.Status == (int)RecordStatus.Active));
 }
        public override object Display(WidgetDisplayContext widgetDisplayContext)
        {
            var currentWidget = widgetDisplayContext.Widget as NavigationWidget;
            var actionContext = widgetDisplayContext.ActionContext;
            var navs          = _navigationService.Get()
                                .Where(m => m.Status == (int)RecordStatus.Active).OrderBy(m => m.DisplayOrder).ToList();

            string     path      = null;
            IUrlHelper urlHelper = null;

            if (ApplicationContext.As <CMSApplicationContext>().IsDesignMode)
            {
                var layout = widgetDisplayContext.PageLayout;
                if (layout != null && layout.Page != null)
                {
                    path = layout.Page.Url.Replace("~/", "/");
                }
            }
            else if (actionContext is ActionExecutedContext)
            {
                path      = (actionContext as ActionExecutedContext).HttpContext.Request.Path.Value.Replace(".html", string.Empty);
                urlHelper = ((actionContext as ActionExecutedContext).Controller as Controller).Url;
            }
            if (urlHelper == null && (actionContext is ActionExecutedContext))
            {
                urlHelper = ((actionContext as ActionExecutedContext).Controller as Controller).Url;
            }

            if (path != null)
            {
                NavigationEntity current = null;
                int length = 0;
                foreach (var navigationEntity in navs)
                {
                    string url = (navigationEntity.Url ?? "~/").Replace(".html", string.Empty);
                    if (urlHelper != null)
                    {
                        url = urlHelper.Content(url);
                    }
                    else
                    {
                        url = url.Replace("~/", "/");
                    }
                    if (path.IndexOf(url, StringComparison.OrdinalIgnoreCase) == 0 && length < url.Length)
                    {
                        current = navigationEntity;
                        length  = url.Length;
                    }
                }
                if (current != null)
                {
                    current.IsCurrent = true;
                }
            }


            if (currentWidget.RootID.IsNullOrEmpty() || currentWidget.RootID == "root")
            {
                currentWidget.RootID = "#";
            }
            return(new NavigationWidgetViewModel(navs, currentWidget));
        }
Example #24
0
 public override WidgetViewModelPart Display(WidgetDisplayContext widgetDisplayContext)
 {
     return(widgetDisplayContext.ToWidgetViewModelPart(_messageService.Get(m => m.Status == (int)RecordStatus.Active)));
 }