private async Task OnUserMembershipChangedAsync(UserMembershipChanged userMembershipChanged, CancellationToken cancellationToken = default) { if (String.IsNullOrEmpty(userMembershipChanged?.OrganizationId)) { _logger.LogTrace("Ignoring User Membership Changed message: No organization id."); return; } // manage user organization group membership var userConnectionIds = await _connectionMapping.GetUserIdConnectionsAsync(userMembershipChanged.UserId); _logger.LogTrace("Attempting to update user {User} active groups for {UserConnectionCount} connections", userMembershipChanged.UserId, userConnectionIds.Count); foreach (string connectionId in userConnectionIds) { if (userMembershipChanged.ChangeType == ChangeType.Added) { await _connectionMapping.GroupAddAsync(userMembershipChanged.OrganizationId, connectionId); } else if (userMembershipChanged.ChangeType == ChangeType.Removed) { await _connectionMapping.GroupRemoveAsync(userMembershipChanged.OrganizationId, connectionId); } } await GroupSendAsync(userMembershipChanged.OrganizationId, userMembershipChanged); }
private void OnUserMembershipChanged(UserMembershipChanged userMembershipChanged) { if (userMembershipChanged == null) { return; } if (String.IsNullOrEmpty(userMembershipChanged.OrganizationId)) { return; } // manage user organization group membership foreach (var connectionId in _userIdConnections.GetConnections(userMembershipChanged.UserId)) { if (userMembershipChanged.ChangeType == ChangeType.Added) { Groups.Add(connectionId, userMembershipChanged.OrganizationId).Wait(); } else if (userMembershipChanged.ChangeType == ChangeType.Removed) { Groups.Remove(connectionId, userMembershipChanged.OrganizationId).Wait(); } } Clients.Group(userMembershipChanged.OrganizationId).userMembershipChanged(userMembershipChanged); }
private async Task OnUserMembershipChangedAsync(UserMembershipChanged userMembershipChanged, CancellationToken cancellationToken = default(CancellationToken)) { if (String.IsNullOrEmpty(userMembershipChanged?.OrganizationId)) { return; } // manage user organization group membership foreach (var connectionId in await _connectionMapping.GetConnectionsAsync(userMembershipChanged.UserId)) { if (userMembershipChanged.ChangeType == ChangeType.Added) { await _connectionMapping.GroupAddAsync(userMembershipChanged.OrganizationId, connectionId); } else if (userMembershipChanged.ChangeType == ChangeType.Removed) { await _connectionMapping.GroupRemoveAsync(userMembershipChanged.OrganizationId, connectionId); } } await GroupSendAsync(userMembershipChanged.OrganizationId, userMembershipChanged); }
private async Task OnUserMembershipChangedAsync(UserMembershipChanged userMembershipChanged, CancellationToken cancellationToken = default(CancellationToken)) { if (String.IsNullOrEmpty(userMembershipChanged?.OrganizationId)) { return; } // manage user organization group membership foreach (var connectionId in _userIdConnections.GetConnections(userMembershipChanged.UserId)) { if (userMembershipChanged.ChangeType == ChangeType.Added) { await Context.Groups.Add(connectionId, userMembershipChanged.OrganizationId); } else if (userMembershipChanged.ChangeType == ChangeType.Removed) { await Context.Groups.Remove(connectionId, userMembershipChanged.OrganizationId); } } await Context.Groups.TypedSend(userMembershipChanged.OrganizationId, userMembershipChanged); }