private async Task UpdateRedisAsync(Domain.AggregatesModel.GroupAggregate.Group group, GroupUser groupUser) { try { // 向redis写入群成员 await _chatServerRedisService.WriteGroupMemberAsync(groupUser.UserId.Value, group.ChatServerGroupId, groupUser.Muted? 1 : 0); } catch (Exception ex) { _logger.LogError("Redis Error: {@RedisError}", ex); } }
private async Task UpdateRedisAsync(Domain.AggregatesModel.GroupAggregate.Group group) { try { // 向redis写入群 await _chatServerRedisService.WriteGroupAsync(group); } catch (Exception ex) { _logger.LogError("Redis Error: {@RedisError}", ex); } }
private async Task UpdateRedisAsync(Domain.AggregatesModel.GroupAggregate.Group group) { try { // 向redis写入群 await _chatServerRedisService.WriteGroupAsync(group); // 发布系统消息 await _chatServerRedisService.WriteGroupMessageAsync(group, SysMsgType.GROUP_INFO_CHANGED); } catch (Exception ex) { _logger.LogError("Redis Error: {@RedisError}", ex); } }
public async Task <GroupViewModel> Handle(CreateGroupCommand request, CancellationToken cancellationToken) { var myId = Guid.Parse(_httpContextAccessor.HttpContext.User.FindFirst(ClaimTypes.NameIdentifier).Value); var group = new Domain.AggregatesModel.GroupAggregate.Group(request.Name, request.Avatar, myId, request.MemberIds); _groupRepository.Add(group); if (await _groupRepository.UnitOfWork.SaveEntitiesAsync(cancellationToken)) { // BackwardCompatibility: 为了兼容以前的聊天服务,需要向redis写入相关数据 await UpdateRedisAsync(group); return(await _groupQueries.GetGroupAsync(group.Id, null)); } throw new ApplicationException("操作失败"); }
private async Task UpdateRedisAsync(QuitGroupCommand request, Domain.AggregatesModel.GroupAggregate.Group group, Guid myId) { try { // 从redis去掉被删除的群成员 await _chatServerRedisService.RemoveGroupMemberAsync(myId, group.ChatServerGroupId); // 发布系统消息 var operatorUser = await _userRepository.GetByIdAsync(myId); var changedUsers = new List <Domain.AggregatesModel.UserAggregate.User> { operatorUser }; await _chatServerRedisService.WriteGroupMemberMessageAsync(group, SysMsgType.MEMBER_SECEDED, changedUsers, operatorUser); } catch (Exception ex) { _logger.LogError("Redis Error: {@RedisError}", ex); } }
private async Task UpdateRedisAsync(Domain.AggregatesModel.GroupAggregate.Group group) { try { // 向redis写入群 await _chatServerRedisService.WriteGroupAsync(group); // 向redis写入群成员 foreach (var groupUser in group.GroupUsers) { await _chatServerRedisService.WriteGroupMemberAsync(groupUser.UserId.Value, group.ChatServerGroupId, 0); } // 发布系统消息 await _chatServerRedisService.WriteGroupMessageAsync(group, SysMsgType.GROUP_CREATED); } catch (Exception ex) { _logger.LogError("Redis Error: {@RedisError}", ex); } }
private async Task UpdateRedisAsync(ChangeGroupOwnerCommand request, Domain.AggregatesModel.GroupAggregate.Group group, Guid operatorId) { try { // 向redis写入群 await _chatServerRedisService.WriteGroupAsync(group); // 发布系统消息 var changedUsers = await _userRepository.GetUsersAsync(new List <Guid> { request.NewOwnerId }); var operatorUser = await _userRepository.GetByIdAsync(operatorId); await _chatServerRedisService.WriteGroupMemberMessageAsync(group, SysMsgType.OWNER_CHANGED, changedUsers, operatorUser); } catch (Exception ex) { _logger.LogError("Redis Error: {@RedisError}", ex); } }
private async Task UpdateRedisAsync(Domain.AggregatesModel.GroupAggregate.Group group) { try { // 从redis去除group await _chatServerRedisService.RemoveGroupAsync(group.ChatServerGroupId); // 从redis去除group members var userIds = group.GroupUsers.Select(gu => gu.UserId.Value); foreach (var userId in userIds) { await _chatServerRedisService.RemoveGroupMemberAsync(userId, group.ChatServerGroupId); } // 发布系统消息 await _chatServerRedisService.WriteGroupMessageAsync(group, SysMsgType.GROUP_DISMISSED); } catch (Exception ex) { _logger.LogError("Redis Error: {@RedisError}", ex); } }
private async Task UpdateRedisAsync(ModifyGroupMembersCommand request, Domain.AggregatesModel.GroupAggregate.Group group, Guid operatorId) { try { // 从redis去掉被删除的群成员 foreach (var memberId in request.RemovedMemberIds) { await _chatServerRedisService.RemoveGroupMemberAsync(memberId, group.ChatServerGroupId); } // 向redis加入新增的群成员 foreach (var memberId in request.NewMemberIds) { await _chatServerRedisService.WriteGroupMemberAsync(memberId, group.ChatServerGroupId, 0); } // 发布系统消息 var operatorUser = await _userRepository.GetByIdAsync(operatorId); if (request.RemovedMemberIds != null && request.RemovedMemberIds.Count > 0) { var removedUsers = await _userRepository.GetUsersAsync(request.RemovedMemberIds); await _chatServerRedisService.WriteGroupMemberMessageAsync(group, SysMsgType.REMOVED_FROM_GROUP, removedUsers, operatorUser); } if (request.NewMemberIds != null && request.NewMemberIds.Count > 0) { var addedUsers = await _userRepository.GetUsersAsync(request.NewMemberIds); await _chatServerRedisService.WriteGroupMemberMessageAsync(group, SysMsgType.NEW_MEMBER_ADDED, addedUsers, operatorUser); } } catch (Exception ex) { _logger.LogError("Redis Error: {@RedisError}", ex); } }