Esempio n. 1
0
        //protected override void OnActionExecuting(ActionExecutingContext filterContext)
        //{
        //    base.OnBaseActionExecuting(filterContext);
        //}

        public override List <ArticleInfoView> GetListEx(Expression <Func <ArticleInfo, bool> > predicate, PageCondition ConPage)
        {
            int appId = default(int);
            int cate  = default(int);

            if (int.TryParse(Request["wechatid"], out appId) && int.TryParse(Request["strSubCate"], out cate))
            {
                predicate = predicate.AndAlso(a => a.AppId == appId && a.CategoryId == cate && a.IsDeleted == false && a.ArticleType == 0 && a.PublishDate != null);
                if (!string.IsNullOrEmpty(Request["searchword"]))
                {
                    var searchWord = Request["searchword"];
                    predicate = predicate.AndAlso(a => a.ArticleTitle.Contains(searchWord) || a.ArticleContent.Contains(searchWord));
                }
                var q = _objService.GetList <ArticleInfoView>(predicate, ConPage);
                q.ForEach(a =>
                {
                    a.ImageCoverUrl = a.ImageCoverUrl.Replace(".", "_B.");
                    if (a.PublishDate.HasValue)
                    {
                        a.PublishDateFormatString = ((DateTime)a.PublishDate).ToString("yyyy-MM-dd");
                    }
                });
                return(q.ToList());
            }
            return(null);
        }
        //public override List<ArticleInfoView> GetListEx(Expression<System.Func<ArticleInfo, bool>> predicate, PageCondition ConPage)
        //{
        //    string strTitle = Request["txtArticleTitle"];
        //    //string strNewsCate = AppId.ToString();
        //    string txtDate = Request["txtDate"];
        //    string strSubCate = Request["txtSubCate"];

        //    predicate = predicate.AndAlso(a => a.IsDeleted == false);

        //    if (!string.IsNullOrEmpty(strTitle))
        //    {
        //        predicate = predicate.AndAlso(a => a.ArticleTitle.Contains(strTitle));
        //    }

        //    if (!string.IsNullOrEmpty(txtDate))
        //    {
        //        DateTime dateTime = Convert.ToDateTime(txtDate);
        //        DateTime dateAdd = dateTime.AddDays(1);
        //        predicate = predicate.AndAlso(a => a.PublishDate >= dateTime && a.PublishDate <= dateAdd);
        //    }

        //    if (!string.IsNullOrEmpty(strSubCate))
        //    {
        //        // ID变更为CategoryCode
        //        //var cateInfo = CommonService.lstCategory.FirstOrDefault(a => a.Id == Convert.ToInt32(strSubCate)
        //        //    && a.IsDeleted == false);

        //        //string categoryCode = cateInfo == null ? string.Empty : cateInfo.CategoryCode;
        //        //predicate = predicate.AndAlso(a => a.ArticleCateSub == strSubCate);
        //        predicate = predicate.AndAlso(a => a.CategoryId == Convert.ToInt32(strSubCate));

        //    }
        //    var codes = (from item in CommonService.GetCategory(false).Where(a => a.IsAdmin.Value ).ToList() select item.CategoryCode).ToList();
        //    predicate = predicate.AndAlso(a => codes.Contains(a.ArticleCateSub) && !string.IsNullOrEmpty(a.ArticleCateSub));

        //    ConPage.SortConditions.Add(new SortCondition("CreatedDate", System.ComponentModel.ListSortDirection.Descending));

        //    var q = _BaseService.GetList<ArticleInfoView>(predicate, ConPage);

        //    // CategoryCode转变换CategoryName
        //    var lstCate = CommonService.GetCategory(false);

        //    q.ForEach(item =>
        //    {
        //        Category category = lstCate.Where(x => !string.IsNullOrEmpty(x.CategoryCode) &&
        //      x.CategoryCode.Equals(item.ArticleCateSub)).Distinct().FirstOrDefault();
        //        item.ArticleCateSub = category == null ? string.Empty : category.CategoryName;
        //        var app =
        //         WeChatCommonService.lstSysWeChatConfig.FirstOrDefault(
        //             y => y.WeixinAppId == item.AppId.ToString());
        //        item.APPName = app == null ? string.Empty : app.AppName;
        //    }
        //        );

        //    return q;

        //}

        //[HttpPost]
        //[ValidateInput(false)]
        //public override JsonResult Post(ArticleInfoView objModal, string Id)
        //{
        //    var appId = GetAppID(int.Parse(objModal.ArticleCateSub));
        //    if (appId == null)
        //    {
        //        ModelState.AddModelError("ArticleCateSub", @"The app of under you selected category does not exist!");
        //    }
        //    else
        //    {
        //        objModal.AppId = appId;
        //    }

        //    return base.Post(objModal, Id);
        //}

        public override ActionResult Export()
        {
            var    req = new GridRequest(Request);
            var    profilePredicate = FilterHelper.GetExpression <ArticleInfo>(req.FilterGroup);
            string strTitle         = Request["txtArticleTitle"];
            //string strNewsCate = AppId.ToString();
            string txtDate    = Request["txtDate"];
            string strSubCate = Request["txtSubCate"];

            profilePredicate = profilePredicate.AndAlso(a => a.IsDeleted == false);

            if (!string.IsNullOrEmpty(strTitle))
            {
                profilePredicate = profilePredicate.AndAlso(a => a.ArticleTitle.Contains(strTitle));
            }

            if (!string.IsNullOrEmpty(txtDate))
            {
                DateTime dateTime = Convert.ToDateTime(txtDate);
                DateTime dateAdd  = dateTime.AddDays(1);
                profilePredicate = profilePredicate.AndAlso(a => a.PublishDate >= dateTime && a.PublishDate <= dateAdd);
            }

            if (!string.IsNullOrEmpty(strSubCate))
            {
                // ID变更为CategoryCode
                //var cateInfo = CommonService.lstCategory.FirstOrDefault(a => a.Id == Convert.ToInt32(strSubCate)
                //    && a.IsDeleted == false);

                //string categoryCode = cateInfo == null ? string.Empty : cateInfo.CategoryCode;
                //predicate = predicate.AndAlso(a => a.ArticleCateSub == strSubCate);
                profilePredicate = profilePredicate.AndAlso(a => a.CategoryId == Convert.ToInt32(strSubCate));
            }
            var ids = (from item in CommonService.GetCategory(false).Where(a => a.IsAdmin.Value).ToList() select item.Id).ToList();

            profilePredicate = profilePredicate.AndAlso(a => a.CategoryId != null && ids.Contains(a.CategoryId.Value));

            var list = _objService.GetList <ArticleInfoView>(0, profilePredicate, new List <SortCondition>()
            {
                new SortCondition("CreatedDate", System.ComponentModel.ListSortDirection.Descending)
            });

            return(exportToCSV(list));
        }
        private List <ArticleInfoView> GetArticleListPrivate(Expression <Func <ArticleInfo, bool> > predicate, PageCondition ConPage)
        {
            // 当前app下的图文: 此条件已经在前台JS中添加都predicate里面了
            //predicate = predicate.AndAlso(x => x.AppId == appId);
            // 只取得发布后的新闻
            predicate = predicate.And(x => x.ArticleStatus == ConstData.STATUS_PUBLISH);
            // 排序
            ConPage.SortConditions.Add(new SortCondition("CreatedDate", System.ComponentModel.ListSortDirection.Descending));

            // 取得list
            var list = _articleInfoService.GetList <ArticleInfoView>(predicate, ConPage);

            // 分类一览
            var categoryList = CommonService.GetCategory((AppId));

            // 取得分类名
            list = ChangeCategoryCodeToCategoryName(list, categoryList);

            return(list);
        }
        protected List <ArticleInfoView> GetListPrivate(ref Expression <Func <ArticleInfo, bool> > predicate, PageCondition ConPage, string strTitle = "", string strNewsCate = "", string txtDate = "", string strSubCate = "", bool isAdmin = false)
        {
            predicate = predicate.AndAlso(a => a.IsDeleted == false);

            if (!string.IsNullOrEmpty(strTitle))
            {
                predicate = predicate.AndAlso(a => a.ArticleTitle.Contains(strTitle));
            }

            if (!string.IsNullOrEmpty(txtDate))
            {
                DateTime dateTime = Convert.ToDateTime(txtDate);
                DateTime dateAdd  = dateTime.AddDays(1);
                predicate = predicate.AndAlso(a => a.PublishDate >= dateTime && a.PublishDate <= dateAdd);
            }

            if (!string.IsNullOrEmpty(strSubCate))
            {
                // ID变更为CategoryCode
                var cateInfo = CommonService.lstCategory.FirstOrDefault(a => a.Id == Convert.ToInt32(strSubCate) &&
                                                                        a.IsDeleted == false);

                string categoryCode = cateInfo == null ? string.Empty : cateInfo.CategoryCode;

                predicate = predicate.AndAlso(a => a.ArticleCateSub == categoryCode);
            }
            if (!isAdmin)
            {
                var codes = (from item in CommonService.GetCategory(false).Where(a => !a.IsAdmin.Value).ToList() select item.CategoryCode).ToList();
                predicate = predicate.AndAlso(a => codes.Contains(a.ArticleCateSub) && !string.IsNullOrEmpty(a.ArticleCateSub));
            }

            //TODO:remove
            //if (!string.IsNullOrEmpty(strNewsCate))
            //{
            //    int appid = int.Parse(strNewsCate);
            //    predicate = predicate.AndAlso(a => a.AppId == appid);
            //}

            //if (!isAdmin)
            //{
            //    // 非系统管理员方式,过滤appid,并且isadmin要为false
            //    predicate = predicate.AndAlso(a => a.AppId == AppId);

            //    predicate = predicate.And(a => a.ArticleCateSub == CommonService.lstCategory.FirstOrDefault(b => b.CategoryCode == a.ArticleCateSub && b.IsAdmin == false).CategoryCode);
            //}
            //else
            //{
            //    // 系统管理员方式,不过滤appid,并且isadmin要为true
            //    predicate = predicate.AndAlso(a => a.ArticleCateSub == CommonService.lstCategory.FirstOrDefault(b => b.CategoryCode == a.ArticleCateSub && b.IsAdmin == true).CategoryCode);
            //}

            ConPage.SortConditions.Add(new SortCondition("CreatedDate", System.ComponentModel.ListSortDirection.Descending));

            //var q = _BaseService.GetList<ArticleInfoView>(predicate, ConPage);
            var q = _articleInfoService.GetList <ArticleInfoView>(predicate, ConPage);

            //TODO:
            string appId = Request["AppId"];

            if (!string.IsNullOrEmpty(appId) && int.TryParse(appId, out AppId))
            {
                // CategoryCode转变换CategoryName
                var lstCate = CommonService.GetCategory((CategoryType)(AppId));

                q = ChangeCategoryCodeToCategoryName(q, lstCate);
            }

            return(q);
        }