public async Task UpdateConsultationResponse(Conference conference, Guid participantId,
                                                     ConsultationAnswer answer)
        {
            var participant = conference.Participants.First(x => x.Id == participantId);

            if (!participant.LinkedParticipants.Any())
            {
                return;
            }

            var interpreterRoom = GetRoomForParticipant(conference, participant);

            if (answer == ConsultationAnswer.Rejected)
            {
                await StopTrackingResponsesForInterpreterRoom(interpreterRoom.Id);
            }

            var acceptedConsultations = await _cache.GetResponses(interpreterRoom.Id);

            if (!acceptedConsultations.Contains(participantId))
            {
                acceptedConsultations.Add(participantId);
            }

            await _cache.AddOrUpdateResponses(interpreterRoom.Id, acceptedConsultations);
        }
        public async Task should_not_track_response_for_participants_not_linked()
        {
            // arrange
            var participant = _conference.Participants.First(x => !x.IsJudge() && !x.LinkedParticipants.Any());

            // act
            await _sut.UpdateConsultationResponse(_conference, participant.Id, ConsultationAnswer.Accepted);

            // assert
            foreach (var room in _conference.CivilianRooms)
            {
                var acceptedResponses = await _cache.GetResponses(room.Id);

                acceptedResponses.Should().BeEmpty();
            }
        }