public async Task <Unit> Handle(InitializeEquipmentRequest request, CancellationToken cancellationToken)
        {
            var connection = new EquipmentConnection(request.ConnectionId, request.Name, request.Devices,
                                                     ImmutableDictionary <ProducerSource, UseMediaStateInfo> .Empty);

            await _repository.SetConnection(request.Participant, connection);

            var isJoined = await _mediator.Send(new CheckIsParticipantJoinedRequest(request.Participant));

            if (!isJoined)
            {
                await _repository.RemoveConnection(request.Participant, connection.ConnectionId);

                throw EquipmentError.ParticipantNotJoined.ToException();
            }

            await _mediator.Send(new UpdateSynchronizedObjectRequest(request.Participant.ConferenceId,
                                                                     SynchronizedEquipment.SyncObjId(request.Participant.Id)));

            return(Unit.Value);
        }
 public async ValueTask SetConnection(Participant participant, EquipmentConnection connection)
 {
     var key = GetKey(participant);
     await _database.HashSetAsync(key, connection.ConnectionId, connection);
 }