Esempio n. 1
0
        /// <summary>
        /// 接受/拒绝专题加入申请
        /// </summary>
        /// <param name="groupIds">申请Id列表</param>
        /// <param name="isApproved">是否接受</param>
        public void ApproveTopicMemberApply(IEnumerable <long> applyIds, bool isApproved)
        {
            //设计要点:
            //1、仅允许对待处理状态的申请变更状态;
            //2、通过批准的申请,直接创建TopicMember
            IEnumerable <TopicMemberApply> TopicMemberApplies = TopicMemberApplyRepository.PopulateEntitiesByEntityIds(applyIds);
            TopicMemberApplyStatus         applyStatus        = isApproved ? TopicMemberApplyStatus.Approved : TopicMemberApplyStatus.Disapproved;
            string operationType = isApproved ? EventOperationType.Instance().Approved() : EventOperationType.Instance().Disapproved();

            foreach (var apply in TopicMemberApplies)
            {
                if (apply.ApplyStatus != TopicMemberApplyStatus.Pending)
                {
                    continue;
                }



                apply.ApplyStatus = applyStatus;
                TopicMemberApplyRepository.Update(apply);



                EventBus <TopicMemberApply> .Instance().OnAfter(apply, new CommonEventArgs(operationType));

                if (isApproved)
                {
                    TopicMember member = TopicMember.New();
                    member.UserId  = apply.UserId;
                    member.TopicId = apply.TopicId;
                    CreateTopicMember(member);
                }
            }
        }
        public ActionResult ManageMemberApplies(string spaceKey, TopicMemberApplyStatus? applyStatus, int pageIndex = 1, int pageSize = 20)
        {
            TopicEntity topic = topicService.Get(spaceKey);
            if (topic == null)
                return HttpNotFound();
            pageResourceManager.InsertTitlePart(topic.TopicName);
            pageResourceManager.InsertTitlePart("管理专题成员申请页");
            
            //已修改
            PagingDataSet<TopicMemberApply> topicMemberApplies = topicService.GetTopicMemberApplies(topic.TopicId, applyStatus, pageSize, pageIndex);
            ViewData["topicId"] = topic.TopicId;
            TempData["TopicMenu"] = TopicMenu.ManageMember;

            return View(topicMemberApplies);
        }
 /// <summary>
 /// 申请处理
 /// </summary>
 /// <param name="siteUrls"></param>
 /// <param name="spaceKey"></param>
 /// <param name="groupId"></param>
 /// <param name="applyStatus"></param>
 /// <returns></returns>
 public static string ManageMemberAppliesOfTopic(this SiteUrls siteUrls, string spaceKey, TopicMemberApplyStatus? applyStatus = null)
 {
     RouteValueDictionary route = new RouteValueDictionary();
     route.Add("spaceKey", spaceKey);
     if (applyStatus != null)
         route.Add("applyStatus", applyStatus);
     return CachedUrlHelper.Action("ManageMemberApplies", "TopicSpaceSettings", TopicAreaName, route);
 }
 /// <summary>
 /// 获取专题的加入申请列表
 /// </summary>
 /// <param name="groupId">专题Id</param>
 /// <param name="applyStatus">申请状态</param>
 /// <param name="pageSize">每页记录数</param>
 /// <param name="pageIndex">页码</param>       
 /// <returns>加入申请分页数据</returns>
 public PagingDataSet<TopicMemberApply> GetTopicMemberApplies(long groupId, TopicMemberApplyStatus? applyStatus, int pageSize = 20, int pageIndex = 1)
 {
     //设计要点:
     //1、排序:申请状态正序、申请时间倒序(Id代替);            
     return TopicMemberApplyRepository.GetTopicMemberApplies(groupId, applyStatus, pageSize, pageIndex);
 }