/// <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> /// 查詢學習圈底下 ConnectId 和最後活動紀錄 /// </summary> /// <param name="circleKey"></param> /// <param name="version">true 新版(全) / old 舊版(扣除自己) </param> /// <returns></returns> public Dictionary <List <string>, dynamic> GetConnectIdAndData(string circleKey, int memberId, SignalrConnectIdType connectIdType, SignalrDataType dataType) { Dictionary <List <string>, dynamic> dic = new Dictionary <List <string>, dynamic>(); List <int> membersId = new List <int>(); var learningCircleService = new LearningCircleService(); var learningcircleInfo = learningCircleService.GetDetailByOuterKey(circleKey.ToLower()); if (learningcircleInfo == null) { return(dic); } switch (connectIdType) { case SignalrConnectIdType.All: var cacheMembers = cacheService.GetCircleMember(circleKey); if (cacheMembers == null) { return(dic); } foreach (var member in cacheMembers) { membersId.Add(member.Id); } break; case SignalrConnectIdType.Other: var cacheOtherMembers = cacheService.GetCircleMember(circleKey).Where(x => x.Id != memberId); if (cacheOtherMembers == null || cacheOtherMembers.FirstOrDefault() == null) { return(dic); } foreach (var member in cacheOtherMembers.ToList()) { membersId.Add(member.Id); } break; case SignalrConnectIdType.Teachers: var membersAccount = learningCircleService.GetCircleTeacherListBySql(circleKey, memberId); if (membersAccount == null) { return(dic); } foreach (var account in membersAccount) { membersId.Add(memberService.AccountToMember(account, learningcircleInfo.OrgId.Value).Id); } break; case SignalrConnectIdType.One: membersId.Add(memberId); break; } foreach (var member in membersId) { if (HttpContext.Current == null) { return(dic); } if (HttpContext.Current.Cache.Get(member.ToString()) is List <string> myConn) { var data = GetData(dataType, circleKey, member); dynamic _value; if (!dic.TryGetValue(myConn, out _value)) { dic.Add(myConn, data); } } } return(dic); }
/// <summary> /// 建立成員角色資訊 /// </summary> /// <param name="account"></param> /// <param name="circleKey"></param> /// <param name="token"></param> /// <returns></returns> public bool InsertMutipleCircleMemberRole(CircleMemberRoleRequest data) { var db = _uow.DbContext; var tokenService = new TokenService(); var tokenInfo = tokenService.GetTokenInfo(data.Token).Result; if (tokenInfo == null) { return(false); } var learningCircleInfo = db.LearningCircle.FirstOrDefault(t => t.LearningOuterKey == data.CircleKey); if (learningCircleInfo == null) { return(false); } foreach (var account in data.Accounts) { var memberService = new MemberService(); var memberInfo = memberService.AccountToMember(account.ToLower(), learningCircleInfo.OrgId.Value); if (memberInfo == null) { return(false); } //判斷是否已存在關聯 var checkData = GetCircleMemberRoleInfo(memberInfo.Id, learningCircleInfo.Id, data.RoleId.Value); //已存在就不新增 if (checkData != null) { continue; } var entity = new Infrastructure.Entity.CircleMemberRoleplay() { Enable = true, CircleId = learningCircleInfo.Id, MemberId = memberInfo.Id, RoleId = data.RoleId.Value }; var circlememberEntity = new CircleMember() { MemberId = memberInfo.Id, CircleId = learningCircleInfo.Id, Enabled = true, Created = TimeData.Create(DateTime.UtcNow), Deleted = TimeData.Create(null), Updated = TimeData.Create(null), CreateUser = tokenInfo.MemberId }; db.CircleMemberRoleplay.Add(entity); db.CircleMember.Add(circlememberEntity); } db.SaveChanges(); return(true); }