public JsonResult GetNewerGroupActivityCount(string spaceKey, long lastActivityId, int?applicationId) { long groupId = GroupIdToGroupKeyDictionary.GetGroupId(spaceKey); string name; int count = activityService.GetNewerCount(groupId, lastActivityId, applicationId, out name, ActivityOwnerTypes.Instance().Group()); if (count == 0) { return(Json(new JsonResult { Data = new { lastActivityId = lastActivityId, hasNew = false } })); } else { string showName; if (count == 1) { showName = name + "更新了动态,点击查看"; } else { showName = name + "等多位群友更新了动态,点击查看"; } return(Json(new JsonResult { Data = new { hasNew = true, showName = showName } })); } }
public ActionResult ApproveMemberApply(string spaceKey, IList <long> applyIds, bool isApproved) { long groupId = GroupIdToGroupKeyDictionary.GetGroupId(spaceKey); groupService.ApproveGroupMemberApply(applyIds, isApproved); return(Json(new StatusMessageData(StatusMessageType.Success, "操作成功"))); }
public ActionResult DeleteMemberApply(string spaceKey, long id) { long groupId = GroupIdToGroupKeyDictionary.GetGroupId(spaceKey); groupService.DeleteGroupMemberApply(id); return(Json(new StatusMessageData(StatusMessageType.Success, "操作成功"))); }
public ActionResult _GroupMemberAlsoJoinedGroups(string spaceKey, int topNumber = 10) { long groupId = GroupIdToGroupKeyDictionary.GetGroupId(spaceKey); IEnumerable <GroupEntity> groups = groupService.GroupMemberAlsoJoinedGroups(groupId, topNumber); return(View(groups)); }
public ActionResult _Menu_Manage(string spaceKey) { long groupId = GroupIdToGroupKeyDictionary.GetGroupId(spaceKey); GroupEntity group = groupService.Get(groupId); if (group == null) { return(Content(string.Empty)); } int currentNavigationId = RouteData.Values.Get <int>("CurrentNavigationId", 0); NavigationService navigationService = new NavigationService(); Navigation navigation = navigationService.GetNavigation(PresentAreaKeysOfBuiltIn.GroupSpace, currentNavigationId, group.GroupId); IEnumerable <Navigation> navigations = new List <Navigation>(); if (navigation != null) { if (navigation.Depth >= 1 && navigation.Parent != null) { navigations = navigation.Parent.Children; } else if (navigation.Depth == 0) { navigations = navigation.Children; } } ViewData["MemberApplyCount"] = groupService.GetMemberApplyCount(group.GroupId); return(View(navigations)); }
/// <summary> /// 最新加入 /// </summary> /// <param name="spaceKey">群组标识</param> /// <param name="topNumber">前几条数据</param> /// <returns></returns> public ActionResult _ListMembers(string spaceKey, int topNumber) { long groupId = GroupIdToGroupKeyDictionary.GetGroupId(spaceKey); IUser currentUser = UserContext.CurrentUser; if (currentUser == null) { return(new EmptyResult()); } PagingDataSet <GroupMember> groupMembers = groupService.GetGroupMembers(groupId, false, SortBy_GroupMember.DateCreated_Desc); IEnumerable <GroupMember> members = groupMembers.Take(topNumber); //设置当前登录用户对当前页用户的关注情况 Dictionary <long, bool> isCurrentUserFollowDic = new Dictionary <long, bool>(); foreach (var member in members) { if (followService.IsFollowed(currentUser.UserId, member.UserId)) { isCurrentUserFollowDic[member.UserId] = true; } else { isCurrentUserFollowDic[member.UserId] = false; } } ViewData["isCurrentUserFollowDic"] = isCurrentUserFollowDic; return(View(members)); }
/// <summary> /// 我关注的群组成员 /// </summary> /// <param name="spaceKey"></param> /// <param name="pageIndex"></param> /// <returns></returns> public ActionResult MyFollowedUsers(string spaceKey, int pageIndex = 1) { GroupEntity group = groupService.Get(spaceKey); if (group == null) { return(HttpNotFound()); } var currentUser = UserContext.CurrentUser; if (currentUser == null) { return(Redirect(SiteUrls.Instance().Login(true))); } pageResourceManager.InsertTitlePart(group.GroupName); pageResourceManager.InsertTitlePart("管理成员列表页"); long groupId = GroupIdToGroupKeyDictionary.GetGroupId(spaceKey); IEnumerable <GroupMember> groupMember = groupService.GetGroupMembersAlsoIsMyFollowedUser(groupId, currentUser.UserId); PagingDataSet <GroupMember> groupMembers = new PagingDataSet <GroupMember>(groupMember); if (currentUser.IsFollowed(group.User.UserId)) { ViewData["groupOwner"] = group.User; } return(View(groupMembers)); }
public ActionResult _GroupMenu(string spaceKey) { long groupId = GroupIdToGroupKeyDictionary.GetGroupId(spaceKey); GroupEntity group = groupService.Get(groupId); if (group == null) { return(Content(string.Empty)); } int currentNavigationId = RouteData.Values.Get <int>("CurrentNavigationId", 0); IEnumerable <Navigation> navigations = new List <Navigation>(); NavigationService navigationService = new NavigationService(); Navigation navigation = navigationService.GetNavigation(PresentAreaKeysOfBuiltIn.GroupSpace, currentNavigationId, group.GroupId); if (navigation != null && navigation.Children.Count() > 0) { navigations = navigation.Children; } else { navigations = navigationService.GetRootNavigations(PresentAreaKeysOfBuiltIn.GroupSpace, group.GroupId); } return(View(navigations)); }
public ActionResult UserThreads(string spaceKey, bool isPosted = false, int pageIndex = 1) { IUser currentUser = UserContext.CurrentUser; long sectionId = GroupIdToGroupKeyDictionary.GetGroupId(spaceKey); //若当前用户是在浏览自己的帖子列表,或者是管理员,则忽略审核; bool ignoreAudit = currentUser != null && UserContext.CurrentUser.UserId == currentUser.UserId || new Authorizer().IsAdministrator(BarConfig.Instance().ApplicationId); PagingDataSet <BarThread> pds = barThreadService.GetUserThreads(TenantTypeIds.Instance().Group(), currentUser.UserId, ignoreAudit, isPosted, pageIndex, sectionId); if (Request.IsAjaxRequest()) { return(PartialView("~/Applications/Bar/Views/Bar/_List.cshtml", pds)); } var group = groupService.Get(spaceKey); pageResourceManager.InsertTitlePart(group.GroupName); string title = isPosted ? "我的回帖" : "我的帖子"; if (UserContext.CurrentUser != null && UserContext.CurrentUser.UserId != currentUser.UserId) { title = isPosted ? currentUser.DisplayName + "的回帖" : currentUser.DisplayName + "的帖子"; ViewData["isOwner"] = false; } pageResourceManager.InsertTitlePart(title); ViewData["userId"] = currentUser != null ? currentUser.UserId : 0; return(View(pds)); }
public ActionResult ManagePosts(string spaceKey, ManagePostsEditModel model, int pageIndex = 1) { long sectionId = GroupIdToGroupKeyDictionary.GetGroupId(spaceKey); BarSection section = barSectionService.Get(sectionId); if (!new Authorizer().BarSection_Manage(section)) { return(Redirect(SiteUrls.Instance().SystemMessage(TempData, new SystemMessageViewModel { Title = "没有权限", Body = "您可能没有权限编辑此帖吧" }))); } var group = groupService.Get(spaceKey); pageResourceManager.InsertTitlePart(group.GroupName); pageResourceManager.InsertTitlePart("回帖管理"); BarPostQuery query = model.AsBarPostQuery(); query.SectionId = section.SectionId; model.SectionId = section.SectionId; ViewData["BarPosts"] = barPostService.Gets(TenantTypeIds.Instance().Group(), query, model.PageSize ?? 20, pageIndex); return(View(model)); }
/// <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 _ListActivities(string spaceKey, int?pageIndex, int?applicationId, MediaType?mediaType, bool?isOriginal, long?userId) { long groupId = GroupIdToGroupKeyDictionary.GetGroupId(spaceKey); GroupEntity group = groupService.Get(groupId); if (group == null) { return(new EmptyResult()); } IUser currentUser = UserContext.CurrentUser; if (currentUser == null) { return(new EmptyResult()); } PagingDataSet <Activity> activities = activityService.GetOwnerActivities(ActivityOwnerTypes.Instance().Group(), groupId, applicationId, mediaType, isOriginal, null, pageIndex ?? 1, userId); if (activities.FirstOrDefault() != null) { ViewData["lastActivityId"] = activities.FirstOrDefault().ActivityId; } bool isDynamic = groupService.IsDynamic(group.GroupId); bool isMember = groupService.IsMember(group.GroupId, currentUser.UserId); ViewData["pageIndex"] = pageIndex; ViewData["applicationId"] = applicationId; ViewData["mediaType"] = mediaType; ViewData["isOriginal"] = isOriginal; ViewData["userId"] = userId; ViewData["isMember"] = isMember; ViewData["isDynamic"] = isDynamic; return(View(activities)); }
public ActionResult _TagCloud(string spaceKey, int topNum = 20) { long sectionId = GroupIdToGroupKeyDictionary.GetGroupId(spaceKey); TagService tagService = new TagService(TenantTypeIds.Instance().BarThread()); Dictionary <TagInOwner, int> ownerTags = tagService.GetOwnerTopTags(topNum, sectionId); return(View(ownerTags)); }
//已修改 /// <summary> /// 最近访客控件 /// </summary> public ActionResult _LastGroupVisitors(string spaceKey, int topNumber = 12) { long groupId = GroupIdToGroupKeyDictionary.GetGroupId(spaceKey); IEnumerable <Visit> visits = visitService.GetTopVisits(groupId, topNumber); ViewData["groupId"] = groupId; return(View(visits)); }
/// <summary> /// 管理分类 /// </summary> /// <param name="sectionId">贴吧id</param> /// <returns>管理分类</returns> public string ManageCategories(long sectionId) { string spaceKey = GroupIdToGroupKeyDictionary.GetGroupKey(sectionId); if (string.IsNullOrEmpty(spaceKey)) { return(string.Empty); } return(SiteUrls.Instance().GroupManageThreadCategories(spaceKey)); }
/// <summary> /// 编辑页面 /// </summary> /// <param name="sectionId"></param> /// <param name="threadId"></param> /// <returns></returns> public string Edit(long sectionId, long?threadId = null) { string spaceKey = GroupIdToGroupKeyDictionary.GetGroupKey(sectionId); if (string.IsNullOrEmpty(spaceKey)) { return(string.Empty); } return(SiteUrls.Instance().GroupThreadEdit(spaceKey, threadId)); }
/// <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 = GroupIdToGroupKeyDictionary.GetGroupKey(sectionId); if (string.IsNullOrEmpty(spaceKey)) { return(string.Empty); } return(SiteUrls.Instance().GroupSectionDetail(spaceKey, categoryId, isEssential, sortBy)); }
public ActionResult _NewGroupActivities(string spaceKey) { long groupId = GroupIdToGroupKeyDictionary.GetGroupId(spaceKey); PagingDataSet <Activity> activities = activityService.GetOwnerActivities(ActivityOwnerTypes.Instance().Group(), groupId, 1001, null, null, null, 1, null); if (activities != null) { return(View(activities.FirstOrDefault())); } return(View()); }
/// <summary> /// 获取链接 /// </summary> /// <param name="tagName"></param> /// <returns></returns> public string GetUrl(string tagName, long ownerId = 0) { if (ownerId > 0) { return(SiteUrls.Instance().GroupThreadListByTag(GroupIdToGroupKeyDictionary.GetGroupKey(ownerId), tagName)); } else { return(SiteUrls.Instance().ListsByTag(tagName)); } }
/// <summary> /// 群组话题详细页 /// </summary> /// <returns></returns> public string TopicDetail(string tagName, long ownerId = 0) { var tag = new TagService(TenantTypeIds.Instance().Microblog()).Get(tagName); if (tag == null) { return(string.Empty); } string spaceKey = GroupIdToGroupKeyDictionary.GetGroupKey(ownerId); return(SiteUrls.Instance().GroupTopic(tagName, spaceKey)); }
/// <summary> /// 获取以后进入用户时间线的动态 /// </summary> public ActionResult _GetNewerActivities(string spaceKey, int?pageIndex, int?applicationId, MediaType?mediaType, bool?isOriginal, long?userId, long?lastActivityId = 0) { long groupId = GroupIdToGroupKeyDictionary.GetGroupId(spaceKey); //IEnumerable<Activity> newActivities= activityService.GetMyTimeline(userId.Value,null,applicationId,mediaType,isOriginal,pageIndex??1).Where(n => n.OwnerType == ActivityOwnerTypes.Instance().Group()); IEnumerable <Activity> newActivities = activityService.GetOwnerActivities(ActivityOwnerTypes.Instance().Group(), groupId, applicationId, mediaType, isOriginal, null, pageIndex ?? 1, userId).Where(n => n.ActivityId > lastActivityId).ToList(); if (newActivities != null && newActivities.Count() > 0) { ViewData["lastActivityId"] = newActivities.FirstOrDefault().ActivityId; } return(View(newActivities)); }
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 && !new Authorizer().BarSection_Manage(barSection)) { return(Redirect(SiteUrls.Instance().SystemMessage(TempData, new SystemMessageViewModel { Title = "没有权限", Body = "此群组还未通过审核,不能查看", StatusMessageType = StatusMessageType.Error }))); } PagingDataSet <BarThread> pds = barThreadService.Gets(sectionId, categoryId, isEssential, sortBy ?? SortBy_BarThread.LastModified_Desc, pageIndex); if (Request.IsAjaxRequest()) { return(PartialView("~/Applications/Bar/Views/Bar/_List.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 || new 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> /// <param name="spaceKey">群组标识</param> /// <param name="topNumber">前几条数据</param> /// <returns></returns> public ActionResult _ListMembers(string spaceKey, int topNumber) { long groupId = GroupIdToGroupKeyDictionary.GetGroupId(spaceKey); IUser currentUser = UserContext.CurrentUser; if (currentUser == null) { return(new EmptyResult()); } PagingDataSet <GroupMember> groupMembers = groupService.GetGroupMembers(groupId, false, SortBy_GroupMember.DateCreated_Desc); IEnumerable <GroupMember> members = groupMembers.Take(topNumber); return(View(members)); }
public ActionResult _GroupInfo(string spaceKey, bool?showGroupLogo) { long groupId = GroupIdToGroupKeyDictionary.GetGroupId(spaceKey); GroupEntity group = groupService.Get(groupId); if (group == null) { return(Content(string.Empty)); } ViewData["showGroupLogo"] = showGroupLogo; return(View(group)); }
/// <summary> /// 用户回帖页面 /// </summary> /// <param name="userId">用户id</param> /// <param name="sectionId">贴吧id</param> /// <returns>用户回帖页面</returns> public string UserPosts(long userId, long?sectionId = null) { if (sectionId == null) { return(string.Empty); } string spaceKey = GroupIdToGroupKeyDictionary.GetGroupKey(sectionId.Value); if (string.IsNullOrEmpty(spaceKey)) { return(string.Empty); } return(SiteUrls.Instance().GroupUserThreads(spaceKey, true)); }
/// <summary> /// 获取以后进入用户时间线的动态 /// </summary> public ActionResult _GetNewerActivities(string spaceKey, int?applicationId, long?lastActivityId = 0) { if (UserContext.CurrentUser == null) { return(new EmptyResult()); } long groupId = GroupIdToGroupKeyDictionary.GetGroupId(spaceKey); IEnumerable <Activity> newActivities = activityService.GetNewerActivities(groupId, lastActivityId.Value, applicationId, ActivityOwnerTypes.Instance().Group(), UserContext.CurrentUser.UserId); if (newActivities != null && newActivities.Count() > 0) { ViewData["lastActivityId"] = newActivities.FirstOrDefault().ActivityId; } return(View(newActivities)); }
/// <summary> /// 编辑回帖页面 /// </summary> /// <param name="threadId">帖子id</param> /// <param name="postId">回帖id</param> /// <returns>编辑回帖页面</returns> public string EditPost(long threadId, long?postId = null) { BarThread thread = new BarThreadService().Get(threadId); if (thread == null) { return(string.Empty); } string spaceKey = GroupIdToGroupKeyDictionary.GetGroupKey(thread.SectionId); if (string.IsNullOrEmpty(spaceKey)) { return(string.Empty); } return(SiteUrls.Instance().GroupEditPost(spaceKey, threadId, postId)); }
/// <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)); }
public string ThreadDetail(long threadId, bool onlyLandlord = false, SortBy_BarPost sortBy = SortBy_BarPost.DateCreated, int pageIndex = 1, long?anchorPostId = null, bool isAnchorPostList = false, long?childPostIndex = null) { BarThread thread = new BarThreadService().Get(threadId); if (thread == null) { return(string.Empty); } string spaceKey = GroupIdToGroupKeyDictionary.GetGroupKey(thread.SectionId); if (string.IsNullOrEmpty(spaceKey)) { return(string.Empty); } return(SiteUrls.Instance().GroupThreadDetail(spaceKey, threadId, onlyLandlord, sortBy, pageIndex, anchorPostId, isAnchorPostList, childPostIndex)); }
public ActionResult _ListActivities(string spaceKey, int?pageIndex, int?applicationId, MediaType?mediaType, bool?isOriginal, long?userId) { long groupId = GroupIdToGroupKeyDictionary.GetGroupId(spaceKey); PagingDataSet <Activity> activities = activityService.GetOwnerActivities(ActivityOwnerTypes.Instance().Group(), groupId, applicationId, mediaType, isOriginal, null, pageIndex ?? 1, userId); if (activities.FirstOrDefault() != null) { ViewData["lastActivityId"] = activities.FirstOrDefault().ActivityId; } ViewData["pageIndex"] = pageIndex; ViewData["applicationId"] = applicationId; ViewData["mediaType"] = mediaType; ViewData["isOriginal"] = isOriginal; ViewData["userId"] = userId; return(View(activities)); }