コード例 #1
0
        public PartakerReqViewModel ReviewPartakerReq(Guid partakerReqId, ReviewStatuses reviewStatus)
        {

            var req = PartakerReqExistsResult.Check(m_PartakerReqManager, partakerReqId).ThrowIfFailed().PartakerReq;
            if (req.ReviewStatus != ReviewStatuses.Unspecified)
            {
                throw new FineWorkException($"Invalid ReviewStatus {reviewStatus}.");
            }
            //申请必须尚未审批
            if (req.ReviewStatus != ReviewStatuses.Unspecified)
            {
                throw new FineWorkException($"申请已经由他人审批.");
            }
            //审批人必须是任务的参与者
            var reviewerPartaker = AccountIsPartakerResult.Check(req.Task, this.AccountId).ThrowIfFailed().Partaker;
            //本方法只能用于审批协同者或指导者
            bool isPartakerKindIsReviewable =
                (req.PartakerKind == PartakerKinds.Collaborator)
                || (req.PartakerKind == PartakerKinds.Mentor);
            if (!isPartakerKindIsReviewable)
            {
                throw new FineWorkException("本方法只能用于审批协同者或指导者.");
            }
            //审批人必须有权审批(审批人必须是任务负责人,或者任务允许成员邀请相应的参与者)
            bool hasReviewAuthority =
                (reviewerPartaker.Kind == PartakerKinds.Leader)
                || (req.PartakerKind == PartakerKinds.Collaborator && req.Task.IsCollabratorInvEnabled)
                || (req.PartakerKind == PartakerKinds.Mentor && req.Task.IsMentorInvEnabled);
            if (!hasReviewAuthority)
            {
                throw new FineWorkException("用户无权审批申请.");
            }

            m_PartakerReqManager.ReviewPartakerReq(req, reviewStatus);

            return req.ToViewModel();

        }
コード例 #2
0
        public IActionResult ReviewPartakerInv(Guid partakerInvId, ReviewStatuses newRevStatus)
        {
            var partakerInv =
                PartakerInvExistsResult.CheckPending(this.m_PartakerInvManager, partakerInvId)
                    .ThrowIfFailed()
                    .PartakerInv;
            var partakerInvEntity= this.m_PartakerInvManager.ReviewPartakerInv(partakerInv, newRevStatus);


            //发送群通知
            if (newRevStatus == ReviewStatuses.Approved)
            {
                var message = string.Format(m_Configuration["LeanCloud:Messages:Task:Join"], partakerInvEntity.Staff.Name);
                m_IIMService.SendTextMessageByConversationAsync(partakerInvEntity.Task.Id, this.AccountId, partakerInvEntity.Task.ConversationId, partakerInvEntity.Task.Name, message);
            }

            return new HttpStatusCodeResult(200);
        }