Пример #1
0
        /// <summary>
        /// initialisiert Frontend
        /// </summary>
        public Frontend(itCampus.bb.Monitor.Frontend frontend, FrontendControl frontendControl)
        {
            // Parameter initialisieren
            _key = frontend.Key;
            _agentStateTimeAvgTtl = new int[9];
            _agentStateTimeTtl    = new int[9];

            // Frontend zu Frontendverwaltung hinzufügen
            _frontendControl = frontendControl;
            _frontendControl.AddFrontend(this);

            // Parameter aktualisieren
            RefreshParameters(frontend);
        }
        /// <summary>
        /// schließt Frontend ab
        /// </summary>
        private void _monitor_OnRemoveFrontend(itCampus.bb.Monitor.Frontend frontend)
        {
            try
            {
                // Ereignis protokollieren
                Logger.Log.Info("[Monitor] -> [OnRemoveFrontend]" +
                                " Frontend: Frontend#" + frontend.Key);

                // Frontend abschließen
                _frontendControl[frontend.Key].Terminate();
            }
            catch (Exception ex)
            {
                Logger.Log.Error("Error on processing event.", ex);
            }
        }
        /// <summary>
        /// aktualisiert Frontend
        /// </summary>
        private void _monitor_OnRefreshFrontend(itCampus.bb.Monitor.Frontend frontend)
        {
            try
            {
                // Ereignis protokollieren
                Logger.Log.Info("[Monitor] -> [OnRefreshFrontend]" +
                                " Frontend: Frontend#" + frontend.Key);

                // Frontend aktualisieren
                _frontendControl[frontend.Key].RefreshParameters(frontend);
            }
            catch (Exception ex)
            {
                Logger.Log.Error("Error on processing event.", ex);
            }
        }
        /// <summary>
        /// initialisiert Frontend
        /// </summary>
        private void _monitor_OnAddFrontend(itCampus.bb.Monitor.Frontend frontend)
        {
            try
            {
                // Ereignis protokollieren
                Logger.Log.Info("[Monitor] -> [OnAddFrontend]" +
                                " Frontend: Frontend#" + frontend.Key);

                // Frontend initialisieren
                new Frontend(frontend, _frontendControl);
            }
            catch (Exception ex)
            {
                Logger.Log.Error("Error on processing event.", ex);
            }
        }
Пример #5
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);
        }