Exemple #1
0
        public override WidgetPart Display(WidgetBase widget, HttpContextBase httpContext)
        {
            var currentWidget      = widget as ArticleListWidget;
            var articleTypeService = new ArticleTypeService();
            var categoryEntity     = articleTypeService.Get(currentWidget.ArticleCategoryID);
            int pageIndex          = 0;
            int ac = 0;

            int.TryParse(httpContext.Request.QueryString["ac"], out ac);
            int.TryParse(httpContext.Request.QueryString["p"], out pageIndex);
            var filter = new Data.DataFilter();

            filter.Where("IsPublish=true");
            filter.OrderBy("PublishDate", OrderType.Descending);
            var articleService = new ArticleService();
            var page           = new Data.Pagination {
                PageIndex = pageIndex, PageSize = currentWidget.PageSize ?? 20
            };

            if (ac != 0)
            {
                filter.Where("ArticleCategoryID", OperatorType.Equal, ac);
            }
            else if (currentWidget.ArticleCategoryID.HasValue)
            {
                filter.Where("ArticleCategoryID", OperatorType.Equal, currentWidget.ArticleCategoryID);
            }
            return(widget.ToWidgetPart(new ArticleListWidgetViewModel
            {
                Articles = currentWidget.IsPageable ? articleService.Get(filter, page) : articleService.Get(filter),
                Widget = currentWidget,
                Pagin = page,
                CategoryTitle = categoryEntity == null ? "" : categoryEntity.Title,
                IsPageable = currentWidget.IsPageable
            }));
        }
        public PageEntity GetByPath(string path, bool publish)
        {
            if (path != "/" && path.EndsWith("/"))
            {
                path = path.Substring(0, path.Length - 1);
            }
            var filter = new Data.DataFilter().Where("Url", OperatorType.Equal, "~" + path);

            if (publish)
            {
                filter.Where("Status", OperatorType.Equal, (int)RecordStatus.Active).Where("IsPublish=true");
            }
            IEnumerable <PageEntity> pages = Get(filter);

            if (!pages.Any() && path == "/")
            {
                pages = Get(new DataFilter().Where("ParentId", OperatorType.Equal, "#").Where("IsHomePage=true").Where("IsPublish=true"));
            }
            return(pages.FirstOrDefault());
        }