/// <summary> /// startet Coaching in Abhängigkeit von aktuellem Status /// </summary> public void StartCoaching(string agentCode, CoachingMode coachingMode) { // Status prüfen if ((_monitor.State != MonitorState.Assigned) && (_monitor.State != MonitorState.Coaching)) { return; } // je nach aktuellem Status switch (_monitor.State) { case MonitorState.Assigned: // Coaching starten MonitorStartCoaching(agentCode, coachingMode); break; case MonitorState.Coaching: // Coaching anpassen if (agentCode != _currentAgentCode) { MonitorStopCoaching(); MonitorStartCoaching(agentCode, coachingMode); } else if (coachingMode != _currentCoachingMode) { MonitorChangeCoaching(coachingMode); } break; } // Coachingparameter aktualisieren _currentAgentCode = agentCode; _currentCoachingMode = coachingMode; }
/// <summary> /// ändert Coachingmodus /// </summary> private void MonitorChangeCoaching(CoachingMode coachingMode) { // Methodenaufruf protokollieren Logger.Log.Info("[Monitor] <- [ChangeCoaching] CoachingMode: " + coachingMode); // Coachingmodus ändern _monitor.ChangeCoaching(coachingMode); // Methodenabschluss protokollieren Logger.Log.Info("[Monitor] -> [ChangeCoaching]"); }
/// <summary> /// startet Coaching /// </summary> private void MonitorStartCoaching(string agentCode, CoachingMode coachingMode) { // Methodenaufruf protokollieren Logger.Log.Info("[Monitor] <- [StartCoaching] AgentCode: " + agentCode + ", CoachingMode: " + coachingMode); // Coaching starten _monitor.StartCoaching(agentCode, coachingMode); // Methodenabschluss protokollieren Logger.Log.Info("[Monitor] -> [StartCoaching]"); }
/// <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); }