예제 #1
0
        public void should_remove_reservation_if_reserved()
        {
            var conferenceId   = _testConference.Id;
            var roomType       = RoomType.ConsultationRoom1;
            var reservationKey = $"{conferenceId}:{roomType}";

            _memoryCache.Set(reservationKey, roomType);
            _roomReservationService.RemoveRoomReservation(conferenceId, roomType);
            _memoryCache.TryGetValue(reservationKey, out _).Should().BeFalse();
        }
예제 #2
0
        protected override async Task PublishStatusAsync(CallbackEvent callbackEvent)
        {
            var endpointStatus = DeriveEndpointStatusForTransferEvent(callbackEvent);

            var command = new UpdateEndpointStatusAndRoomCommand(SourceConference.Id, SourceEndpoint.Id, endpointStatus,
                                                                 callbackEvent.TransferTo);
            await CommandHandler.Handle(command);

            if (endpointStatus == EndpointState.InConsultation && callbackEvent.TransferTo.HasValue)
            {
                _roomReservationService.RemoveRoomReservation(SourceConference.Id, callbackEvent.TransferTo.Value);
            }
        }
예제 #3
0
        protected override async Task PublishStatusAsync(CallbackEvent callbackEvent)
        {
            var participantStatus = DeriveParticipantStatusForTransferEvent(callbackEvent);

            var command =
                new UpdateParticipantStatusAndRoomCommand(SourceConference.Id, SourceParticipant.Id, participantStatus,
                                                          callbackEvent.TransferTo);
            await CommandHandler.Handle(command);

            if (participantStatus == ParticipantState.InConsultation)
            {
                _roomReservationService.RemoveRoomReservation(SourceConference.Id, (RoomType)callbackEvent.TransferTo);
            }
        }