/// <summary> /// 贴吧详细显示页面 /// </summary> /// <param name="sectionId"></param> /// <returns></returns> public string SectionDetail(long sectionId, SortBy_BarThread? sortBy = null, bool? isEssential = null, long? categoryId = null) { string spaceKey = TopicIdToTopicKeyDictionary.GetTopicKey(sectionId); if (string.IsNullOrEmpty(spaceKey)) return string.Empty; return SiteUrls.Instance().TopicSectionDetail(spaceKey, categoryId, isEssential, sortBy); }
/// <summary> /// 获取主题帖的排行数据 /// </summary> /// <param name="tenantTypeId">租户类型Id</param> /// <param name="topNumber">前多少条</param> /// <param name="isEssential">是否为精华帖</param> /// <param name="sortBy">主题帖排序依据</param> /// <returns></returns> public IEnumerable<BarThread> GetTops(string tenantTypeId, int topNumber, bool? isEssential = null, SortBy_BarThread sortBy = SortBy_BarThread.StageHitTimes) { //只获取可对外显示审核状态的主题帖 //缓存周期:常用对象集合,不用维护即时性 return barThreadRepository.GetTops(tenantTypeId, topNumber, isEssential, sortBy); }
/// <summary> /// 根据帖吧获取主题帖分页集合 /// </summary> /// <param name="sectionId">帖吧Id</param> /// <param name="categoryId">帖吧分类Id</param> /// <param name="isEssential">是否为精华帖</param> /// <param name="sortBy">帖子排序依据</param> /// <param name="pageIndex">页码</param> /// <returns>主题帖列表</returns> public PagingDataSet<BarThread> Gets(long sectionId, long? categoryId = null, bool? isEssential = null, SortBy_BarThread sortBy = SortBy_BarThread.LastModified_Desc, int pageIndex = 1) { //只获取可对外显示审核状态的主题帖 //缓存周期:对象集合,需要维护即时性 return barThreadRepository.Gets(sectionId, categoryId, isEssential, sortBy, pageIndex); }
/// <summary> /// 获取群组贴吧的排行数据 /// </summary> /// <param name="tenantTypeId">租户类型Id</param> /// <param name="topNumber">前多少条</param> /// <param name="sortBy">主题帖排序依据</param> /// <returns></returns> public IEnumerable <BarThread> GetTopsThreadOfGroup(string tenantTypeId, int topNumber, bool?isEssential = null, SortBy_BarThread sortBy = SortBy_BarThread.StageHitTimes) { return(barThreadRepository.GetTopsThreadOfGroup(tenantTypeId, topNumber, isEssential, sortBy)); }
public ActionResult _Tops(int topNumber, bool? isEssential, SortBy_BarThread? sortBy) { IEnumerable<BarThread> threads = barThreadService.GetTops(TenantTypeIds.Instance().Bar(), topNumber, isEssential, sortBy ?? SortBy_BarThread.StageHitTimes); ViewData["sortBy"] = sortBy; ViewData["isEssential"] = isEssential; return PartialView(threads); }
public ActionResult Rank(SortBy_BarThread? sortBy, bool? isEssential, int pageIndex = 1) { PagingDataSet<BarThread> pds = barThreadService.Gets(TenantTypeIds.Instance().Bar(), string.Empty, isEssential, sortBy ?? SortBy_BarThread.StageHitTimes, pageIndex); if (Request.IsAjaxRequest()) return PartialView("_List", pds); pageResourceManager.InsertTitlePart("帖子排行"); ViewData["sortBy"] = sortBy; return View(pds); }
/// <summary> /// ��ǩ�µ����� /// </summary> /// <param name="tagName">��ǩ��</param> /// <param name="sectionId">����id</param> /// <returns>��ǩ�µ�����</returns> public string ListByTag(string tagName, long? sectionId = null, SortBy_BarThread? sortBy = null, bool? isEssential = null) { if (sectionId == null) return string.Empty; string spaceKey = GroupIdToGroupKeyDictionary.GetGroupKey(sectionId.Value); if (string.IsNullOrEmpty(spaceKey)) return string.Empty; return SiteUrls.Instance().GroupThreadListByTag(spaceKey, tagName, sortBy, isEssential); }
/// <summary> /// 获取群组贴吧的排行数据 /// </summary> /// <param name="tenantTypeId">租户类型Id</param> /// <param name="topNumber">前多少条</param> /// <param name="sortBy">主题帖排序依据</param> /// <returns></returns> public IEnumerable <BarThread> GetTopsThreadOfGroup(string tenantTypeId, int topNumber, bool?isEssential, SortBy_BarThread sortBy) { //只获取可对外显示审核状态的主题帖 //缓存周期:常用对象集合,不用维护即时性 return(GetTopEntities(topNumber, CachingExpirationType.UsualObjectCollection, () => { StringBuilder cacheKey = new StringBuilder(); cacheKey.AppendFormat("BarThreadRanks::TenantTypeId-{0}:SortBy-{1}:isEssential-{2}:isPublic-{3}", tenantTypeId, sortBy, isEssential, 1); return cacheKey.ToString(); } , () => { var sql = Sql.Builder; var whereSql = Sql.Builder; var orderSql = Sql.Builder; sql.Select("spb_BarThreads.*") .From("spb_BarThreads") .InnerJoin("spb_Groups") .On("spb_BarThreads.SectionId=spb_Groups.GroupId"); whereSql.Where("spb_BarThreads.TenantTypeId = @0", tenantTypeId); whereSql.Where("spb_Groups.IsPublic=@0", 1); if (isEssential.HasValue) { whereSql.Where("spb_BarThreads.IsEssential = @0", isEssential.Value); } switch (this.PubliclyAuditStatus) { case PubliclyAuditStatus.Again: case PubliclyAuditStatus.Fail: case PubliclyAuditStatus.Pending: case PubliclyAuditStatus.Success: whereSql.Where("spb_BarThreads.AuditStatus=@0", this.PubliclyAuditStatus); break; case PubliclyAuditStatus.Again_GreaterThanOrEqual: case PubliclyAuditStatus.Pending_GreaterThanOrEqual: whereSql.Where("spb_BarThreads.AuditStatus>@0", this.PubliclyAuditStatus); break; default: break; } CountService countService = new CountService(TenantTypeIds.Instance().BarThread()); string countTableName = countService.GetTableName_Counts(); switch (sortBy) { case SortBy_BarThread.DateCreated_Desc: orderSql.OrderBy("spb_BarThreads.ThreadId desc"); break; case SortBy_BarThread.LastModified_Desc: orderSql.OrderBy("spb_BarThreads.LastModified desc"); break; case SortBy_BarThread.HitTimes: sql.LeftJoin(string.Format("(select * from {0} WHERE ({0}.CountType = '{1}')) c", countTableName, CountTypes.Instance().HitTimes())) .On("spb_BarThreads.ThreadId = c.ObjectId"); orderSql.OrderBy("c.StatisticsCount desc"); break; case SortBy_BarThread.StageHitTimes: StageCountTypeManager stageCountTypeManager = StageCountTypeManager.Instance(TenantTypeIds.Instance().BarThread()); int stageCountDays = stageCountTypeManager.GetMaxDayCount(CountTypes.Instance().HitTimes()); string stageCountType = stageCountTypeManager.GetStageCountType(CountTypes.Instance().HitTimes(), stageCountDays); sql.LeftJoin(string.Format("(select * from {0} WHERE ({0}.CountType = '{1}')) c", countTableName, stageCountType)) .On("spb_BarThreads.ThreadId = c.ObjectId"); orderSql.OrderBy("c.StatisticsCount desc"); break; case SortBy_BarThread.PostCount: orderSql.OrderBy("spb_BarThreads.PostCount desc"); break; default: orderSql.OrderBy("spb_BarThreads.ThreadId desc"); break; } sql.Append(whereSql).Append(orderSql); return sql; })); }
/// <summary> /// 群组贴吧标签下的帖子 /// </summary> /// <param name="spaceKey">群组groupKey</param> /// <param name="tagName">标签名</param> /// <param name="sortBy">排序字段</param> /// <param name="isEssential">是否精华</param> /// <param name="pageIndex">页码</param> /// <returns>群组贴吧标签下的帖子</returns> public static string GroupThreadListByTag(this SiteUrls urls, string spaceKey, string tagName, SortBy_BarThread? sortBy = null, bool? isEssential = null, int pageIndex = 1) { RouteValueDictionary dic = new RouteValueDictionary(); dic.Add("spaceKey", spaceKey); dic.Add("tagName", tagName); if (sortBy.HasValue) dic.Add("sortBy", sortBy); if (isEssential.HasValue) dic.Add("isEssential", isEssential); if (pageIndex > 1) dic.Add("pageIndex", pageIndex); return CachedUrlHelper.Action("ListByTag", "GroupSpaceBar", BarAreaName, dic); }
/// <summary> /// 群组贴吧首页 /// </summary> /// <param name="urls"></param> /// <param name="spaceKey">群组groupKey</param> /// <param name="categoryId">分类id</param> /// <param name="isEssential">是否精华</param> /// <param name="sortBy">排序方式</param> /// <param name="pageIndex">回帖页码</param> /// <returns>群组贴吧首页</returns> public static string GroupSectionDetail(this SiteUrls urls, string spaceKey, long? categoryId = null, bool? isEssential = null, SortBy_BarThread? sortBy = null, int pageIndex = 1, bool? isPosted = null) { RouteValueDictionary dic = new RouteValueDictionary(); dic.Add("spaceKey", spaceKey); if (categoryId.HasValue) dic.Add("categoryId", categoryId); if (isEssential.HasValue) dic.Add("isEssential", isEssential); if (sortBy.HasValue) dic.Add("sortBy", sortBy); if (pageIndex > 1) dic.Add("pageIndex", pageIndex); if (isPosted.HasValue) dic.Add("isPosted", isPosted); return CachedUrlHelper.Action("SectionDetail", "GroupSpaceBar", BarAreaName, dic); }
/// <summary> /// 帖子排行 /// </summary> /// <param name="siteUrls"></param> /// <param name="sortBy"></param> /// <param name="isEssential"></param> /// <returns></returns> public static string BarThreadRank(this SiteUrls siteUrls, SortBy_BarThread? sortBy = null, bool? isEssential = null) { RouteValueDictionary routeValueDictionary = new RouteValueDictionary(); if (sortBy.HasValue) routeValueDictionary.Add("sortBy", sortBy); if (isEssential.HasValue) routeValueDictionary.Add("isEssential", isEssential.Value); return CachedUrlHelper.Action("Rank", "Bar", BarAreaName, routeValueDictionary); }
/// <summary> /// ��ǩ�µ�����ҳ�� /// </summary> /// <param name="tagName">��ǩ��</param> /// <param name="sectionId">����id</param> /// <returns>��ǩ�µ�����ҳ��</returns> public string ListByTag(string tagName, long? sectionId = null, SortBy_BarThread? sortBy = null, bool? isEssential = null) { return SiteUrls.Instance().ListsByTag(tagName, sortBy, isEssential); }
/// <summary> /// ������ϸ��ʾҳ�� /// </summary> /// <param name="sectionId">����id</param> /// <returns>������ϸ��ʾҳ��</returns> public string SectionDetail(long sectionId, SortBy_BarThread? sortBy = null, bool? isEssential = null, long? categoryId = null) { return SiteUrls.Instance().SectionDetail(sectionId, sortBy, isEssential, categoryId); }
/// <summary> /// 根据帖吧获取主题帖分页集合 /// </summary> /// <param name="sectionId">帖吧Id</param> /// <param name="categoryId">帖吧分类Id</param> /// <param name="isEssential">是否为精华帖</param> /// <param name="sortBy">帖子排序依据</param> /// <param name="pageIndex">页码</param> /// <returns>主题帖列表</returns> public PagingDataSet <BarThread> Gets(long sectionId, long?categoryId = null, bool?isEssential = null, SortBy_BarThread sortBy = SortBy_BarThread.LastModified_Desc, int pageIndex = 1) { //只获取可对外显示审核状态的主题帖 //缓存周期:对象集合,需要维护即时性 return(barThreadRepository.Gets(sectionId, categoryId, isEssential, sortBy, pageIndex)); }
/// <summary> /// 根据标签名获取主题帖排行分页集合 /// </summary> /// <param name="tenantTypeId">租户类型Id</param> /// <param name="tageName">标签名</param> /// <param name="isEssential">是否为精华帖</param> /// <param name="sortBy">帖子排序依据</param> /// <param name="pageIndex">页码</param> /// <returns>主题帖列表</returns> public PagingDataSet <BarThread> Gets(string tenantTypeId, string tageName, bool?isEssential = null, SortBy_BarThread sortBy = SortBy_BarThread.StageHitTimes, int pageIndex = 1) { //只获取可对外显示审核状态的主题帖 //缓存周期:对象集合,不用维护即时性 return(barThreadRepository.Gets(tenantTypeId, tageName, isEssential, sortBy, pageIndex)); }
/// <summary> /// 获取群组贴吧的排行数据 /// </summary> /// <param name="tenantTypeId">租户类型Id</param> /// <param name="topNumber">前多少条</param> /// <param name="sortBy">主题帖排序依据</param> /// <returns></returns> public IEnumerable<BarThread> GetTopsThreadOfGroup(string tenantTypeId, int topNumber, bool? isEssential = null, SortBy_BarThread sortBy = SortBy_BarThread.StageHitTimes) { return barThreadRepository.GetTopsThreadOfGroup(tenantTypeId, topNumber, isEssential, sortBy); }
/// <summary> /// 标签下的帖子 /// </summary> /// <param name="siteUrls"></param> /// <param name="tagName">标签名</param> /// <returns>标签下的帖子名</returns> public static string ListsByTag(this SiteUrls siteUrls, string tagName, SortBy_BarThread? sortBy = null, bool? isEssential = null) { RouteValueDictionary routeValueDictionary = new RouteValueDictionary(); routeValueDictionary.Add("tagName", WebUtility.UrlEncode(tagName.TrimEnd('.'))); if (sortBy.HasValue) routeValueDictionary.Add("sortBy", sortBy); if (isEssential.HasValue) routeValueDictionary.Add("isEssential", isEssential.Value); return CachedUrlHelper.RouteUrl("Channel_Bar_Tag", routeValueDictionary); }
/// <summary> /// 帖吧的详细显示页面 /// </summary> /// <param name="siteUrls"></param> /// <param name="sectionId">帖吧的Id</param> /// <returns>帖吧详细像是页面的链接</returns> public static string SectionDetail(this SiteUrls siteUrls, long sectionId, SortBy_BarThread? sortBy = null, bool? isEssential = null, long? categoryId = null) { RouteValueDictionary routeValueDictionary = new RouteValueDictionary(); routeValueDictionary.Add("sectionId", sectionId); if (sortBy.HasValue) routeValueDictionary.Add("sortBy", sortBy); if (isEssential.HasValue) routeValueDictionary.Add("isEssential", isEssential); if (categoryId.HasValue) routeValueDictionary.Add("categoryId", categoryId); return CachedUrlHelper.RouteUrl("Channel_Bar_SectionDetail", routeValueDictionary); }
/// <summary> /// 根据帖吧获取主题帖分页集合 /// </summary> /// <param name="tenantTypeId">租户类型Id</param> /// <param name="sectionId">帖吧Id</param> /// <param name="categoryId">帖吧分类Id</param> /// <param name="isEssential">是否为精华帖</param> /// <param name="sortBy">帖子排序依据</param> /// <param name="pageIndex">页码</param> /// <returns>主题帖列表</returns> public PagingDataSet <BarThread> Gets(long sectionId, long?categoryId, bool?isEssential, SortBy_BarThread sortBy, int pageIndex) { //只获取可对外显示审核状态的主题帖 //缓存周期:对象集合,需要维护即时性 return(GetPagingEntities(pageSize, pageIndex, CachingExpirationType.ObjectCollection, () => { StringBuilder cacheKey = new StringBuilder(); cacheKey.Append(RealTimeCacheHelper.GetListCacheKeyPrefix(CacheVersionType.AreaVersion, "SectionId", sectionId)); cacheKey.AppendFormat("BarThreadsOfSectionId::CategoryId-{0}:IsEssential-{1}:SortBy-{2}", categoryId, isEssential, sortBy); return cacheKey.ToString(); } , () => { var sql = Sql.Builder; var whereSql = Sql.Builder; var orderSql = Sql.Builder; sql.Select("spb_BarThreads.*") .From("spb_BarThreads"); whereSql.Where("SectionId = @0", sectionId); if (categoryId.HasValue && categoryId.Value > 0) { sql.InnerJoin("tn_ItemsInCategories") .On("ThreadId = tn_ItemsInCategories.ItemId"); whereSql.Where("tn_ItemsInCategories.CategoryId=@0", categoryId.Value); } if (isEssential.HasValue) { whereSql.Where("IsEssential = @0", isEssential.Value); } switch (this.PubliclyAuditStatus) { case PubliclyAuditStatus.Again: case PubliclyAuditStatus.Fail: case PubliclyAuditStatus.Pending: case PubliclyAuditStatus.Success: whereSql.Where("AuditStatus=@0", this.PubliclyAuditStatus); break; case PubliclyAuditStatus.Again_GreaterThanOrEqual: case PubliclyAuditStatus.Pending_GreaterThanOrEqual: whereSql.Where("AuditStatus>@0", this.PubliclyAuditStatus); break; default: break; } CountService countService = new CountService(TenantTypeIds.Instance().BarThread()); string countTableName = countService.GetTableName_Counts(); switch (sortBy) { case SortBy_BarThread.DateCreated_Desc: orderSql.OrderBy("ThreadId desc"); break; case SortBy_BarThread.LastModified_Desc: orderSql.OrderBy("IsSticky desc,LastModified desc"); break; case SortBy_BarThread.HitTimes: sql.LeftJoin(string.Format("(select * from {0} WHERE ({0}.CountType = '{1}')) c", countTableName, CountTypes.Instance().HitTimes())) .On("ThreadId = c.ObjectId"); orderSql.OrderBy("c.StatisticsCount desc"); break; case SortBy_BarThread.StageHitTimes: StageCountTypeManager stageCountTypeManager = StageCountTypeManager.Instance(TenantTypeIds.Instance().BarThread()); int stageCountDays = stageCountTypeManager.GetMaxDayCount(CountTypes.Instance().HitTimes()); string stageCountType = stageCountTypeManager.GetStageCountType(CountTypes.Instance().HitTimes(), stageCountDays); sql.LeftJoin(string.Format("(select * from {0} WHERE ({0}.CountType = '{1}')) c", countTableName, stageCountType)) .On("ThreadId = c.ObjectId"); orderSql.OrderBy("c.StatisticsCount desc"); break; case SortBy_BarThread.PostCount: orderSql.OrderBy("PostCount desc"); break; default: orderSql.OrderBy("ThreadId desc"); break; } sql.Append(whereSql).Append(orderSql); return sql; })); }
/// <summary> /// ��ǩ��ʾ�����б� /// </summary> /// <returns></returns> public ActionResult ListByTag(string spaceKey, string tagName, SortBy_BarThread? sortBy, bool? isEssential, int pageIndex = 1) { tagName = WebUtility.UrlDecode(tagName); PagingDataSet<BarThread> pds = barThreadService.Gets(TenantTypeIds.Instance().Group(), tagName, isEssential, sortBy ?? SortBy_BarThread.StageHitTimes, pageIndex); if (Request.IsAjaxRequest()) return PartialView("~/Applications/Bar/Views/Bar/_ListInGroup.cshtml", pds); var group = groupService.Get(spaceKey); if (group == null) return HttpNotFound(); pageResourceManager.InsertTitlePart(group.GroupName); pageResourceManager.InsertTitlePart(tagName); ViewData["sortBy"] = sortBy; var tag = new TagService(TenantTypeIds.Instance().BarThread()).Get(tagName); if (tag == null) { return HttpNotFound(); } ViewData["tag"] = tag; ViewData["SectionId"] = GroupIdToGroupKeyDictionary.GetGroupId(spaceKey); ViewData["group"] = group; return View(pds); }
public ActionResult SectionDetail(long sectionId, long? categoryId = null, bool? isEssential = null, SortBy_BarThread? sortBy = null, int pageIndex = 1) { BarSection barSection = barSectionService.Get(sectionId); if (barSection == null) return HttpNotFound(); //当用户没有权限查看该贴吧的时候。提示较为有好的提示信息 if (barSection.AuditStatus != AuditStatus.Success && !authorizer.BarSection_Manage(barSection)) { return Redirect(SiteUrls.Instance().SystemMessage(TempData, new SystemMessageViewModel { Title = "没有权限", Body = "此帖吧还未通过审核,不能查看", StatusMessageType = StatusMessageType.Hint })); } if (!authorizer.BarSection_View(barSection)) return Redirect(SiteUrls.Instance().SystemMessage(TempData, SystemMessageViewModel.NoCompetence())); PagingDataSet<BarThread> pds = barThreadService.Gets(sectionId, categoryId, isEssential, sortBy ?? SortBy_BarThread.LastModified_Desc, pageIndex); if (Request.IsAjaxRequest()) return PartialView("_List", pds); pageResourceManager.InsertTitlePart(barSection.Name); IEnumerable<Category> sectionCategories = categoryService.GetCategoriesOfItem(barSection.SectionId, 0, TenantTypeIds.Instance().BarSection()); if (sectionCategories != null && sectionCategories.Count() > 0) { Category currentSectionCategory = sectionCategories.First(); List<Category> allParentCategories = new List<Category>(); if (currentSectionCategory.Parent != null) RecursiveGetAllParentCategories(currentSectionCategory.Parent, ref allParentCategories); ViewData["allParentSectionCategories"] = allParentCategories; ViewData["currentSectionCategory"] = currentSectionCategory; ViewData["topSections"] = barSectionService.GetTops(10, currentSectionCategory.CategoryId, SortBy_BarSection.ThreadAndPostCount); } Category currentThreadCategory = null; if (categoryId.HasValue && categoryId.Value > 0) currentThreadCategory = categoryService.Get(categoryId.Value); if (currentThreadCategory != null) { ViewData["currentThreadCategory"] = currentThreadCategory; } ViewData["OnlyFollowerCreateThread"] = barSettings.OnlyFollowerCreateThread; if (UserContext.CurrentUser != null) ViewData["IsSubscribed"] = subscribeService.IsSubscribed(sectionId, UserContext.CurrentUser.UserId); IEnumerable<long> topMemberUserIds = subscribeService.GetTopUserIdsOfObject(sectionId, 15); ViewData["topMembers"] = userService.GetFullUsers(topMemberUserIds); ViewData["section"] = barSection; ViewData["threadCategories"] = categoryService.GetRootCategories(TenantTypeIds.Instance().BarThread(), sectionId); ViewData["sortBy"] = sortBy; return View(pds); }
public ActionResult SectionDetail(string spaceKey, long? categoryId = null, bool? isEssential = null, SortBy_BarThread? sortBy = null, bool? isPosted = null, int pageIndex = 1) { IUser currentUser = UserContext.CurrentUser; long sectionId = GroupIdToGroupKeyDictionary.GetGroupId(spaceKey); BarSection barSection = barSectionService.Get(sectionId); if (barSection == null) return HttpNotFound(); if (barSection.AuditStatus != AuditStatus.Success && !authorizer.BarSection_Manage(barSection)) { return Redirect(SiteUrls.Instance().SystemMessage(TempData, new SystemMessageViewModel { Title = "û��Ȩ��", Body = "��Ⱥ�黹δͨ����ˣ����ܲ鿴", StatusMessageType = StatusMessageType.Hint })); } PagingDataSet<BarThread> pds = barThreadService.Gets(sectionId, categoryId, isEssential, sortBy ?? SortBy_BarThread.LastModified_Desc, pageIndex); if (Request.IsAjaxRequest()) return PartialView("~/Applications/Bar/Views/Bar/_ListInGroup.cshtml", pds); pageResourceManager.InsertTitlePart(barSection.Name); Category currentThreadCategory = null; if (categoryId.HasValue && categoryId.Value > 0) currentThreadCategory = categoryService.Get(categoryId.Value); if (currentThreadCategory != null) { ViewData["currentThreadCategory"] = currentThreadCategory; } //���ǰ�û���������Լ��������б�������ǹ���Ա���������ˣ� bool ignoreAudit = currentUser != null && UserContext.CurrentUser.UserId == currentUser.UserId || authorizer.IsAdministrator(BarConfig.Instance().ApplicationId); if (isPosted.HasValue) { pds = barThreadService.GetUserThreads(TenantTypeIds.Instance().Group(), currentUser.UserId, ignoreAudit, isPosted.Value, pageIndex, sectionId); } ViewData["section"] = barSection; ViewData["threadCategories"] = categoryService.GetOwnerCategories(sectionId, TenantTypeIds.Instance().BarThread()); ViewData["sortBy"] = sortBy; return View(pds); }
/// <summary> /// 标签显示帖子列表 /// </summary> /// <returns></returns> public ActionResult ListsByTag(string tagName, SortBy_BarThread? sortBy, bool? isEssential, int pageIndex = 1) { tagName = WebUtility.UrlDecode(tagName); PagingDataSet<BarThread> pds = barThreadService.Gets(TenantTypeIds.Instance().Bar(), tagName, isEssential, sortBy ?? SortBy_BarThread.StageHitTimes, pageIndex); if (Request.IsAjaxRequest()) return PartialView("_List", pds); var tag = new TagService(TenantTypeIds.Instance().BarThread()).Get(tagName); if (tag == null) { return HttpNotFound(); } ViewData["tag"] = tag; pageResourceManager.InsertTitlePart(tagName); ViewData["sortBy"] = sortBy; return View(pds); }
/// <summary> /// 根据标签名获取主题帖排行分页集合 /// </summary> /// <param name="tenantTypeId">租户类型Id</param> /// <param name="tageName">标签名</param> /// <param name="isEssential">是否为精华帖</param> /// <param name="sortBy">帖子排序依据</param> /// <param name="pageIndex">页码</param> /// <returns>主题帖列表</returns> public PagingDataSet<BarThread> Gets(string tenantTypeId, string tageName, bool? isEssential = null, SortBy_BarThread sortBy = SortBy_BarThread.StageHitTimes, int pageIndex = 1) { //只获取可对外显示审核状态的主题帖 //缓存周期:对象集合,不用维护即时性 return barThreadRepository.Gets(tenantTypeId, tageName, isEssential, sortBy, pageIndex); }
public ActionResult _TopicTops(int topNumber, bool? isEssential, SortBy_BarThread sortBy = SortBy_BarThread.PostCount) { //todo:barThreadService为dll,需要扩展出GetTopsThreadOfTopic方法 IEnumerable<BarThread> threads = barThreadService.GetTopsThreadOfGroup(TenantTypeIds.Instance().Group(), topNumber, isEssential, sortBy); ViewData["sortBy"] = sortBy; ViewData["isEssential"] = isEssential; return PartialView(threads.Take(topNumber)); }
/// <summary> /// 获取主题帖的排行数据 /// </summary> /// <param name="tenantTypeId">租户类型Id</param> /// <param name="topNumber">前多少条</param> /// <param name="isEssential">是否为精华帖</param> /// <param name="sortBy">主题帖排序依据</param> /// <returns></returns> public IEnumerable <BarThread> GetTops(string tenantTypeId, int topNumber, bool?isEssential = null, SortBy_BarThread sortBy = SortBy_BarThread.StageHitTimes) { //只获取可对外显示审核状态的主题帖 //缓存周期:常用对象集合,不用维护即时性 return(barThreadRepository.GetTops(tenantTypeId, topNumber, isEssential, sortBy)); }