Пример #1
0
    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);
    }
Пример #2
0
        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);
        }
Пример #3
0
        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);
        }
Пример #4
0
        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);
        }