コード例 #1
0
        /// <summary>
        /// 設定學習圈單人角色關聯
        /// </summary>
        /// <param name="memberId"></param>
        /// <param name="roleId"></param>
        /// <returns>回傳設定角色資訊</returns>
        public Infrastructure.Entity.CircleMemberRoleplay SetMemberRoleInfo(int learningId, int memberId, int roleId, int adminUser, bool setEnable)
        {
            var db = _uow.DbContext;
            //判斷是否已設定過角色
            var checkRole = db.CircleMemberRoleplay.Where(t => t.RoleId.Equals(roleId) && t.MemberId.Equals(memberId) && t.CircleId.Equals(learningId));
            var entity    = new CircleMemberRoleplay();

            //直接修改角色
            if (checkRole.Any())
            {
                entity        = checkRole.ToList()[0];
                entity.Enable = setEnable;

                db.SaveChanges();
            }
            //新增關聯角色
            else
            {
                entity = new CircleMemberRoleplay
                {
                    RoleId   = roleId,
                    CircleId = learningId,
                    MemberId = memberId,
                    Enable   = true,
                };
                db.CircleMemberRoleplay.Add(entity);
                db.SaveChanges();
            }
            var result = db.CircleMemberRoleplay.Find(entity.Id);

            return(result);
        }
コード例 #2
0
        /// <summary>
        /// 新增單筆資訊
        /// </summary>
        /// <param name="circleKey"></param>
        /// <param name="account"></param>
        /// <param name="token"></param>
        /// <param name="roleId"></param>
        /// <returns></returns>
        public bool InsertCircleMemberRole(string circleKey, string account, string token, int roleId)
        {
            var memberService = new MemberService();
            var memberInfo    = memberService.TokenToMember(token).Result;

            if (memberInfo == null)
            {
                return(false);
            }

            var learningRoleService = new LearningRoleService();
            var learningRoleInfo    = learningRoleService.GetDetailById(roleId);

            if (learningRoleInfo == null)
            {
                return(false);
            }
            var learningCircleService = new LearningCircleService();
            var learningCircleInfo    = learningCircleService.GetDetailByOuterKey(circleKey.ToLower());

            if (learningCircleInfo == null)
            {
                return(false);
            }
            var accountInfo = memberService.AccountToMember(account, learningCircleInfo.OrgId);

            if (accountInfo == null)
            {
                return(false);
            }

            var entity = new CircleMemberRoleplay()
            {
                CircleId    = learningCircleInfo.Id,
                Enable      = true,
                MemberId    = accountInfo.Id,
                RoleId      = roleId,
                ResType     = 0,
                ExternalRid = null
            };

            _uow.DbContext.CircleMemberRoleplay.Add(entity);
            return(true);
        }
コード例 #3
0
        /// <summary>
        /// 根據InviteCode 建立成員角色資訊 - 邀請碼加入
        /// </summary>
        /// <param name="requestData"></param>
        /// <returns></returns>
        public InviteResponseData InsertCircleMemberRoleByInvite(CircleMemberRoleRequest requestData)
        {
            var db = _uow.DbContext;

            var inviteData   = db.MemberInvite.FirstOrDefault(t => t.Code.ToLower() == requestData.InviteCode.ToLower());
            var responseData = new InviteResponseData()
            {
                InviteStatus = InviteStatusEnum.inviteError
            };

            if (inviteData == null)
            {
                return(responseData);
            }

            var learningCircleInfo = db.LearningCircle.FirstOrDefault(t => t.LearningOuterKey == inviteData.CircleKey.ToLower());

            if (learningCircleInfo == null || learningCircleInfo.InviteEnable == false || learningCircleInfo.Enable == false)
            {
                responseData.InviteStatus = InviteStatusEnum.EndInvite;
                return(responseData);
            }
            responseData.CircleName = learningCircleInfo.Name;

            if (inviteData.Enable == false)
            {
                responseData.InviteStatus = InviteStatusEnum.inviteError;
                return(responseData);
            }

            var memberService = new MemberService();
            var memberInfo    = memberService.TokenToMember(requestData.Token).Result;

            if (memberInfo == null || memberInfo.OrgId != learningCircleInfo.OrgId.Value)
            {
                responseData.InviteStatus = InviteStatusEnum.AccountNotAllow;
                return(responseData);
            }
            var organizationInfo = _uow.DbContext.Organizations.FirstOrDefault(t => t.Id == memberInfo.OrgId);

            if (organizationInfo == null)
            {
                responseData.InviteStatus = InviteStatusEnum.AccountNotAllow;
                return(responseData);
            }
            responseData.OrgName = organizationInfo.Name;

            //查出學生角色資訊
            var learningRoleInfo = db.LearningRole.FirstOrDefault(t => t.Level == 3 && t.LearningId == learningCircleInfo.Id && t.IsFixed == false);

            if (learningRoleInfo == null)
            {
                responseData.InviteStatus = InviteStatusEnum.EndInvite;
                return(responseData);
            }

            //判斷要加的管理者是否跟Token帳號一致
            var checkAddAccountIsSuccess = requestData.Accounts.FirstOrDefault(t => t.ToString().ToLower() == memberInfo.Account.ToLower());

            if (checkAddAccountIsSuccess == null)
            {
                responseData.InviteStatus = InviteStatusEnum.inviteError;
                return(responseData);
            }
            //將驗證碼失效
            var getOldInviteData = _uow.DbContext.MemberInvite.FirstOrDefault
                                       (t => t.CircleKey.ToLower() == inviteData.CircleKey.ToLower() &&
                                       t.Enable == true &&
                                       t.Type == 0 &&
                                       t.Code.ToLower() == requestData.InviteCode.ToLower());

            if (getOldInviteData != null && getOldInviteData.IsCourseCode == false)
            {
                getOldInviteData.Enable = false;
            }
            else if (getOldInviteData.IsCourseCode == false)
            {
                responseData.InviteStatus = InviteStatusEnum.inviteError;
                return(responseData);
            }
            var checkJoined = db.CircleMemberRoleplay.FirstOrDefault(t => t.MemberId == memberInfo.Id && t.RoleId == learningRoleInfo.Id && t.CircleId == learningCircleInfo.Id);

            if (checkJoined == null)
            {
                var entity = new CircleMemberRoleplay()
                {
                    CircleId = learningCircleInfo.Id,
                    Enable   = true,
                    MemberId = memberInfo.Id,
                    ResType  = requestData.ResType,
                    RoleId   = learningRoleInfo.Id
                };
                db.CircleMemberRoleplay.Add(entity);
                var circleMemberEntity = new CircleMember()
                {
                    CircleId = learningCircleInfo.Id,
                    Enabled  = true,
                    MemberId = memberInfo.Id,
                    Created  = TimeData.Create(DateTime.UtcNow),
                    Deleted  = TimeData.Create(null),
                    Updated  = TimeData.Create(null)
                };
                db.CircleMember.Add(circleMemberEntity);
                db.CircleMemberRoleplay.Add(entity);
            }
            else
            {
                checkJoined.Enable = true;
            }
            db.SaveChanges();
            responseData.InviteStatus = InviteStatusEnum.success;
            return(responseData);
        }