public void Should_check_if_closed(ConferenceState state, bool isClosed) { var conference = new ConferenceBuilder() .WithConferenceStatus(state).Build(); conference.IsClosed().Should().Be(isClosed); }
private void c_OnChannelEnteredBridgeEvent(object sender, ChannelEnteredBridgeEvent e) { ConferenceUser confUser = ConferenceUsers.SingleOrDefault(x => x.Channel.Id == e.Channel.Id); if (confUser == null) { return; } confUser.State = ConferenceUserState.InConf; if (ConferenceUsers.Count(x => x.State == ConferenceUserState.InConf) > 1) // are we the only ones here { // stop moh _client.Bridges.StopMoh(Confbridge.Id); // change state State = ConferenceState.Ready; // announce new user _client.Bridges.Play(Confbridge.Id, "recording:" + confUser.CurrentRecodingId, "en", 0, 0, Guid.NewGuid().ToString()); _client.Bridges.Play(Confbridge.Id, "sound:conf-hasjoin", "en", 0, 0, Guid.NewGuid().ToString()); } else { // only caller in conf _client.Channels.Play(e.Channel.Id, "sound:conf-onlyperson", "en", 0, 0, Guid.NewGuid().ToString()); } }
private void c_OnBridgeDestroyedEvent(object sender, BridgeDestroyedEvent e) { if (e.Bridge.Id == Id.ToString()) { State = ConferenceState.Destroyed; } }
public bool StartConference() { // TODO: fix this, .Connected returning false all the time //if (!client.Connected) // return false; // Create the conference bridge Debug.Print("Requesting new bridge {0} for {1}", Id, ConferenceName); Bridge bridge = _client.Bridges.Create("mixing", Id.ToString(), ConferenceName); if (bridge == null) { return(false); } Debug.Print("Subscribing to events on bridge {0} for {1}", Id, ConferenceName); _client.Applications.Subscribe(AppConfig.AppName, "bridge:" + bridge.Id); // Start MOH on conf bridge _client.Bridges.StartMoh(bridge.Id, "default"); // Default state is ReadyWaiting until MOH is turned off State = ConferenceState.ReadyWaiting; Confbridge = bridge; // Conference ready to accept calls State = ConferenceState.Ready; return(true); }
public IEnumerable <ConferenceDTO> GetFilteredConferences(ConferenceState conferenceState) { using (var uow = new UnitOfWork()) { var conferenceRepo = uow.getRepository <Conference>(); return(converter.convertToDTOList(conferenceRepo.getAll().Where(conference => conference.State == conferenceState))); } }
private static ConferenceStatus GetStatus(ConferenceState state) { if (!Enum.TryParse(state.ToString(), true, out ConferenceStatus status)) { status = ConferenceStatus.NotStarted; } return(status); }
public void ThenTheHearingStatusChanges(ConferenceState state) { var conferenceState = new PollForConferenceStatus(_c.Apis.TestApi) .WithConferenceId(_c.Test.Conference.Id) .WithExpectedState(state) .Retries(MaxRetries) .Poll(); conferenceState.Should().Be(state); }
private void ChangeConferenceState(int idConference, ConferenceState conferenceState) { using (var uow = new UnitOfWork()) { var conferenceRepo = uow.getRepository <Conference>(); var conferenceFromRepo = conferenceRepo.get(idConference); conferenceFromRepo.State = conferenceState; uow.saveChanges(); } }
/// <summary> /// aktualisiert Parameter /// </summary> public void RefreshParameters(itCampus.bb.Monitor.Conference conference) { // Parameter aktualisieren _state = conference.State; _lastStateChange = conference.LastStateChange; _initiator = conference.Initiator; _confereeCount = conference.ConfereeCount; // Konferenzverwaltung aktualisieren _conferenceControl.RefreshConference(this); }
private void c_OnBridgeCreatedEvent(object sender, BridgeCreatedEvent e) { // Never gets fired! if (e.Bridge.Id != Id.ToString()) { return; } State = ConferenceState.Ready; Debug.Print("Created bridge {0} for {1}", Id, ConferenceName); }
public async Task DestroyConference() { State = ConferenceState.Destroying; ConferenceUsers.ForEach(async x => await RemoveUser(x.Channel.Id)); if (Confbridge != null) { await _client.Bridges.DestroyAsync(Confbridge.Id); } Confbridge = null; State = ConferenceState.Destroyed; }
public void DestroyConference() { State = ConferenceState.Destroying; ConferenceUsers.ForEach(x => RemoveUser(x.Channel.Id)); if (Confbridge != null) { _client.Bridges.Destroy(Confbridge.Id); } Confbridge = null; State = ConferenceState.Destroyed; }
public static bool HasNotPassed(ConferenceState status, DateTime?closedDateTime) { if (status != ConferenceState.Closed) { return(true); } if (!closedDateTime.HasValue) { throw new ArgumentNullException(nameof(closedDateTime), "A closed conference must have a closed time"); } // After a conference is closed, VH Officers can still administer conferences until this period of time const int postClosedVisibilityTime = 30; var endTime = closedDateTime.Value.AddMinutes(postClosedVisibilityTime); return(DateTime.UtcNow < endTime); }
public async Task Should_update_conference_status() { var seededConference = await TestDataManager.SeedConference(); TestContext.WriteLine($"New seeded conference id: {seededConference.Id}"); _newConferenceId = seededConference.Id; const ConferenceState state = ConferenceState.Paused; var beforeState = seededConference.GetCurrentStatus(); var command = new UpdateConferenceStatusCommand(_newConferenceId, state); await _handler.Handle(command); var updatedConference = await _conferenceByIdHandler.Handle(new GetConferenceByIdQuery(_newConferenceId)); var afterState = updatedConference.GetCurrentStatus(); afterState.Should().NotBe(beforeState); afterState.Should().Be(state); }
protected override async Task PublishStatusAsync(CallbackEvent callbackEvent) { const ConferenceState conferenceState = ConferenceState.Suspended; var command = new UpdateConferenceStatusCommand(SourceConference.Id, conferenceState); await CommandHandler.Handle(command); var reason = "Hearing suspended"; if (SourceParticipant == null) { SourceParticipant = SourceConference.GetJudge(); reason = "Technical assistance"; } var taskCommand = new AddTaskCommand(SourceConference.Id, SourceParticipant.Id, reason, TaskType.Hearing); await CommandHandler.Handle(taskCommand); }
public Conference( AriClient c, Guid id, string name) { _client = c; Id = id; ConferenceName = name; State = ConferenceState.Destroyed; c.OnChannelDtmfReceivedEvent += c_OnChannelDtmfReceivedEvent; c.OnBridgeCreatedEvent += c_OnBridgeCreatedEvent; c.OnChannelEnteredBridgeEvent += c_OnChannelEnteredBridgeEvent; c.OnBridgeDestroyedEvent += c_OnBridgeDestroyedEvent; c.OnChannelLeftBridgeEvent += c_OnChannelLeftBridgeEvent; c.OnRecordingFinishedEvent += c_OnRecordingFinishedEvent; // Added support for talk detection c.OnChannelTalkingStartedEvent += c_OnChannelTalkingStartedEvent; c.OnChannelTalkingFinishedEvent += c_OnChannelTalkingFinishedEvent; Debug.Print("Added Conference {0}", ConferenceName); }
public void UpdateConferenceStatus(ConferenceState status) { if (status == ConferenceState.NotStarted) { throw new DomainRuleException(nameof(status), "Cannot set conference status to 'Not Started'"); } if (status == ConferenceState.InSession && !ActualStartTime.HasValue) { ActualStartTime = DateTime.UtcNow; } if (status == ConferenceState.Closed) { ClosedDateTime = DateTime.UtcNow; } State = status; ConferenceStatuses.Add(new ConferenceStatus(status)); }
public Conference(AriClient c, Guid id, string name) { _client = c; Id = id; ConferenceName = name; State = ConferenceState.Destroyed; c.OnChannelDtmfReceivedEvent += c_OnChannelDtmfReceivedEvent; c.OnBridgeCreatedEvent += c_OnBridgeCreatedEvent; c.OnChannelEnteredBridgeEvent += c_OnChannelEnteredBridgeEvent; c.OnBridgeDestroyedEvent += c_OnBridgeDestroyedEvent; c.OnChannelLeftBridgeEvent += c_OnChannelLeftBridgeEvent; c.OnRecordingFinishedEvent += c_OnRecordingFinishedEvent; // Added support for talk detection c.OnChannelTalkingStartedEvent += c_OnChannelTalkingStartedEvent; c.OnChannelTalkingFinishedEvent += c_OnChannelTalkingFinishedEvent; Debug.Print("Added Conference {0}", ConferenceName); }
public async Task should_set_start_time_when_status_moves_from_not_started_to_in_session() { var conference = new ConferenceBuilder(true) .Build(); var seededConference = await TestDataManager.SeedConference(conference); TestContext.WriteLine($"New seeded conference id: {seededConference.Id}"); _newConferenceId = seededConference.Id; const ConferenceState state = ConferenceState.InSession; var beforeState = seededConference.GetCurrentStatus(); var command = new UpdateConferenceStatusCommand(_newConferenceId, state); await _handler.Handle(command); var updatedConference = await _conferenceByIdHandler.Handle(new GetConferenceByIdQuery(_newConferenceId)); var afterState = updatedConference.GetCurrentStatus(); afterState.Should().NotBe(beforeState); afterState.Should().Be(state); updatedConference.ActualStartTime.Should().HaveValue(); }
public void should_set_start_time_when_status_changes_to_in_session_first_time(ConferenceState status, bool startTimeSet) { var conference = new ConferenceBuilder().Build(); conference.UpdateConferenceStatus(status); conference.ActualStartTime.HasValue.Should().Be(startTimeSet); }
public PollForConferenceStatus WithExpectedState(ConferenceState expectedState) { _expectedState = expectedState; return(this); }
public ConferenceStatus(ConferenceState conferenceState) { ConferenceState = conferenceState; TimeStamp = DateTime.UtcNow; }
private void c_OnChannelEnteredBridgeEvent(object sender, ChannelEnteredBridgeEvent e) { ConferenceUser confUser = ConferenceUsers.SingleOrDefault(x => x.Channel.Id == e.Channel.Id); if (confUser == null) return; confUser.State = ConferenceUserState.InConf; if (ConferenceUsers.Count(x => x.State == ConferenceUserState.InConf) > 1) // are we the only ones here { // stop moh _client.Bridges.StopMoh(Confbridge.Id); // change state State = ConferenceState.Ready; // announce new user _client.Bridges.Play(Confbridge.Id, "recording:" + confUser.CurrentRecodingId, "en", 0, 0, Guid.NewGuid().ToString()); _client.Bridges.Play(Confbridge.Id, "sound:conf-hasjoin", "en", 0, 0, Guid.NewGuid().ToString()); } else { // only caller in conf _client.Channels.Play(e.Channel.Id, "sound:conf-onlyperson", "en", 0, 0, Guid.NewGuid().ToString()); } }
private void c_OnBridgeDestroyedEvent(object sender, BridgeDestroyedEvent e) { if (e.Bridge.Id == Id.ToString()) State = ConferenceState.Destroyed; }
private void c_OnBridgeCreatedEvent(object sender, BridgeCreatedEvent e) { // Never gets fired! if (e.Bridge.Id != Id.ToString()) return; State = ConferenceState.Ready; Debug.Print("Created bridge {0} for {1}", Id, ConferenceName); }
public UpdateConferenceStatusCommand(Guid conferenceId, ConferenceState conferenceState) { ConferenceId = conferenceId; ConferenceState = conferenceState; }
public bool StartConference() { // TODO: fix this, .Connected returning false all the time //if (!client.Connected) // return false; // Create the conference bridge Debug.Print("Requesting new bridge {0} for {1}", Id, ConferenceName); Bridge bridge = _client.Bridges.Create("mixing", Id.ToString(), ConferenceName); if (bridge == null) { return false; } Debug.Print("Subscribing to events on bridge {0} for {1}", Id, ConferenceName); _client.Applications.Subscribe(AppConfig.AppName, "bridge:" + bridge.Id); // Start MOH on conf bridge _client.Bridges.StartMoh(bridge.Id, "default"); // Default state is ReadyWaiting until MOH is turned off State = ConferenceState.ReadyWaiting; Confbridge = bridge; // Conference ready to accept calls State = ConferenceState.Ready; return true; }
public void DestroyConference() { State = ConferenceState.Destroying; ConferenceUsers.ForEach(x => RemoveUser(x.Channel.Id)); if (Confbridge != null) _client.Bridges.Destroy(Confbridge.Id); Confbridge = null; State = ConferenceState.Destroyed; }
public ConferenceBuilder WithConferenceStatus(ConferenceState conferenceState) { _conference.UpdateConferenceStatus(conferenceState); return(this); }
private void SelectStartHearing() { _conferenceState = ConferenceState.InSession; _commonSharedSteps.WhenTheUserSelectsTheOptionFromTheDropdown(_browser.Driver, EventsPage.HearingEventDropdown, "Start"); _browser.Click(EventsPage.SendHearingEventButton); }
private Domain.Conference GetTestDataConference(DateTime startTime, bool audioRecording, ConferenceState conferenceStatus) { var conference = new ConferenceBuilder(true, scheduledDateTime: startTime) .WithParticipant(UserRole.Representative, "Respondent") .WithParticipant(UserRole.Judge, null) .WithConferenceStatus(conferenceStatus) .WithAudioRecordingRequired(audioRecording) .Build(); return(conference); }
public IEnumerable <ConferenceDTO> GetFilteredConferences(ConferenceState conferenceState) { return(_adminConferenceService.GetFilteredConferences(conferenceState)); }
public IEnumerable <ConferenceDTO> getFilteredConferences(string conferenceState) { ConferenceState state = (ConferenceState)Enum.Parse(typeof(ConferenceState), conferenceState); return(_server.GetFilteredConferences(state)); }