/// <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); }
/// <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); }
/// <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); }