示例#1
0
        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 }
                }));
            }
        }
示例#2
0
        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, "操作成功")));
        }
示例#3
0
        public ActionResult DeleteMemberApply(string spaceKey, long id)
        {
            long groupId = GroupIdToGroupKeyDictionary.GetGroupId(spaceKey);

            groupService.DeleteGroupMemberApply(id);
            return(Json(new StatusMessageData(StatusMessageType.Success, "操作成功")));
        }
示例#4
0
        public ActionResult _GroupMemberAlsoJoinedGroups(string spaceKey, int topNumber = 10)
        {
            long groupId = GroupIdToGroupKeyDictionary.GetGroupId(spaceKey);
            IEnumerable <GroupEntity> groups = groupService.GroupMemberAlsoJoinedGroups(groupId, topNumber);

            return(View(groups));
        }
示例#5
0
        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));
        }
示例#6
0
        /// <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));
        }
示例#7
0
        /// <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));
        }
示例#8
0
        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));
        }
示例#10
0
        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));
        }
示例#11
0
        /// <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));
        }
示例#13
0
        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));
        }
示例#14
0
        //已修改
        /// <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));
        }
示例#15
0
        /// <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));
        }
示例#16
0
        /// <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));
        }
示例#17
0
        /// <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));
        }
示例#18
0
        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());
        }
示例#19
0
 /// <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));
     }
 }
示例#20
0
        /// <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));
        }
示例#21
0
        /// <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));
        }
示例#22
0
        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));
        }
示例#24
0
        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));
        }
示例#25
0
        /// <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));
        }
示例#27
0
        /// <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));
        }
示例#28
0
        /// <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));
        }
示例#29
0
        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));
        }
示例#30
0
        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));
        }