/// <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;
 }
Example #3
0
        /// <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);
        }