コード例 #1
0
        /// <summary>
        /// 获取文章列表
        /// </summary>
        /// <param name="info">查询条件</param>
        /// <param name="isLoadSideInfo">是否加载侧边数据</param>
        /// <returns></returns>
        private PagedList <Article> GetList(SearchInfo info, bool isLoadSideInfo = true)
        {
            var pageSize = 15;//默认
            var setting  = Configs.ConfigHelper.GetBasicConfig();

            if (setting != null)
            {
                pageSize = setting.WebsitePageSize;
            }

            if (isLoadSideInfo)
            {
                LoadSideInfo();
            }
            var state = (int)ArticleStatus.Normal;

            var query = _articleRepository.Table.Where(p => p.State == state);

            //关键字
            if (!string.IsNullOrEmpty(info.Keywork))
            {
                query = query.Where(p => p.Title.Contains(info.Keywork));
            }
            //标签
            if (!string.IsNullOrEmpty(info.TagName))
            {
                query = query.Where(p => p.Tags.Contains(info.TagName));
            }
            //分类
            if (!string.IsNullOrEmpty(info.CategoryName))
            {
                var category = _categoryRepository.Table.Where(p => p.CategoryName == info.CategoryName).FirstOrDefault();
                if (category != null)
                {
                    query = query.Where(p => p.CategoryId == category.Id);
                }
            }

            //归档
            if (!string.IsNullOrEmpty(info.ArchiveName))
            {
                var date    = Convert.ToDateTime(info.ArchiveName);
                int days    = DateTime.DaysInMonth(date.Year, date.Month);
                var maxDate = Convert.ToDateTime(info.ArchiveName + days + "日");
                query = query.Where(p => p.CreateTime >= date && p.CreateTime <= maxDate);
            }

            query = query.OrderByDescending(p => p.IsTop)
                    .ThenByDescending(p => p.Sort)
                    .ThenByDescending(p => p.CreateTime);
            return(query.ToPagedList(info.PageIndex, pageSize, true));
        }
コード例 #2
0
        public ActionResult AJaxLoadList()
        {
            //获取页码
            var page       = Request["page"];
            var searchInfo = new SearchInfo(Convert.ToInt32(page));
            //获取查询条件
            var url    = Request["p"];
            var pIndex = url.LastIndexOf('/');

            if (pIndex > 0)
            {
                var arr = url.TrimStart('/').Split('/');
                if (arr.Length == 2)
                {
                    if (arr[0] == "categories")
                    {
                        searchInfo.CategoryName = arr[1];
                    }
                    if (arr[0] == "archive")
                    {
                        searchInfo.ArchiveName = arr[1];
                    }
                    if (arr[0] == "tag")
                    {
                        searchInfo.TagName = arr[1];
                    }
                }
            }
            else
            {
                if (url.IndexOf('?') >= 0)
                {
                    var arr = url.TrimStart('?').Split('=');
                    if (arr.Length == 2)
                    {
                        searchInfo.Keywork = arr[1];
                    }
                }
            }

            var pages = GetList(searchInfo, false);
            var items = pages.Items;
            var list  = items.Select(p => { return(new { p.Title, p.IsTop, CreateTime = p.CreateTime.ToString("yyyy-MM-dd HH:mm"), p.Id }); });

            return(Json(new { data = list, page = pages.TotalPages }, JsonRequestBehavior.AllowGet));
        }