/// <summary> /// gibt Farbe für angegebenen Status zurück /// </summary> private Color GetStateColor(FrontendState state) { switch (state) { case FrontendState.LoggedOff: return(Color.FromArgb(192, 192, 192)); case FrontendState.Unassigned: return(Color.FromArgb(245, 245, 245)); case FrontendState.NotReady: return(Color.FromArgb(192, 192, 255)); case FrontendState.Ready: return(Color.FromArgb(192, 255, 192)); case FrontendState.Pending: return(Color.FromArgb(224, 192, 160)); case FrontendState.Signaling: return(Color.FromArgb(255, 240, 240)); case FrontendState.Preparing: return(Color.FromArgb(192, 255, 255)); case FrontendState.Calling: return(Color.FromArgb(255, 192, 255)); case FrontendState.Talking: return(Color.FromArgb(255, 192, 192)); case FrontendState.Conferencing: return(Color.FromArgb(255, 224, 192)); case FrontendState.Wrapup: return(Color.FromArgb(255, 255, 192)); default: throw new Exception("FrontendState unknown."); } }
// Collision processor needs access to session as it needs to process multiple things in the future public void Init(FrontendState session) { this.session = session; }
/// <summary> /// aktualisiert Parameter /// </summary> public void RefreshParameters(itCampus.bb.Monitor.Frontend frontend) { // Parameter aktualisieren _remoteAddress = frontend.RemoteAddress; _lastState = _state; _state = frontend.State; _lastStateChange = frontend.LastStateChange; _agentCode = frontend.AgentCode; _deviceCode = frontend.DeviceCode; _campaignCode = frontend.CampaignCode; _agentMode = frontend.AgentMode; _coachingPermission = frontend.CoachingPermission; _monitorCode = frontend.MonitorCode; _coachingMode = frontend.CoachingMode; foreach (AgentState agentState in Enum.GetValues(typeof(AgentState))) { _agentStateTimeAvgTtl[(int)agentState] = frontend.GetAgentStateTimeAvgTtl(agentState); } foreach (AgentState agentState in Enum.GetValues(typeof(AgentState))) { _agentStateTimeTtl[(int)agentState] = frontend.GetAgentStateTimeTtl(agentState); } // wenn Device zugeordnet if (_device != null) { // wenn Devicecode übereinstimmt if (_device.Code == _deviceCode) { // Device aktualisieren _device.RefreshFrontend(); } else { // sonst Device freigeben _device.UnassignFrontend(); _device = null; } } // wenn kein Device zugeordnet if (_device == null) { // wenn Devicecode angegeben if (_deviceCode != "") { // Deviceverwaltung referenzieren DeviceControl deviceControl = _frontendControl.MainControl.DeviceControl; // Device suchen _device = deviceControl[_deviceCode]; // wenn Device nicht gefunden, erzeugen if (_device == null) { _device = new Device(_deviceCode, deviceControl); } // Device zuordnen _device.AssignFrontend(this); } } // wenn Kampagne zugeordnet if (_campaign != null) { // wenn Kampagnencode nicht übereinstimmt, Kampagne freigeben if (_campaign.Code != _campaignCode) { UnassignCampaign(); } } // wenn keine Kampagne zugeordnet if (_campaign == null) { // wenn Kampagnencode angegeben if (_campaignCode != "") { // Kampagnenverwaltung referenzieren CampaignControl campaignControl = _frontendControl.MainControl.CampaignControl; // Kampagne suchen Campaign campaign = campaignControl.GetCampaign(_campaignCode); // wenn Kampagne gefunden, zuordnen if (campaign != null) { AssignCampaign(campaign); } } } // Frontendverwaltung aktualisieren _frontendControl.RefreshFrontend(this); }