/// <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); } }
/// <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); }