/// <summary> /// aktualisiert Parameter /// </summary> public void RefreshParameters(itCampus.bb.Monitor.Campaign campaign) { // alte Parameter merken string code = _code; string name = _name; // Parameter aktualisieren _code = campaign.Code; _name = campaign.Name; _state = campaign.State; _lastStateChange = campaign.LastStateChange; _availabilityMode = campaign.AvailabilityMode; _dialMode = campaign.DialMode; _carrierCode = campaign.CarrierCode; _callingNumber = campaign.CallingNumber; _minRingCount = campaign.MinRingCount; _maxRingCount = campaign.MaxRingCount; _maxSwitchingTime = campaign.MaxSwitchingTime; _maxDialRate = campaign.MaxDialRate; _maxDropRate = campaign.MaxDropRate; _maxLostRate = campaign.MaxLostRate; _agentRelaxTarget = campaign.AgentRelaxTarget; _musicOnReadyFile = campaign.MusicOnReadyFile; _greetingFile = campaign.GreetingFile; _waitingFile = campaign.WaitingFile; _answeringMachineFile = campaign.AnsweringMachineFile; _abandonmentFile = campaign.AbandonmentFile; _cpaLevel = campaign.CPALevel; _hotlineNumbers = campaign.HotlineNumbers; _hotlineQueueSizeFactor = campaign.HotlineQueueSizeFactor; _hotlineGreetingFile = campaign.HotlineGreetingFile; _hotlineWaitingFile = campaign.HotlineWaitingFile; _hotlineAbandonmentFile = campaign.HotlineAbandonmentFile; _autoRecording = campaign.AutoRecording; _dialRate = campaign.DialRate; _preLevel = campaign.PreLevel; _dropRateCur = campaign.DropRateCur; _dropRateTtl = campaign.DropRateTtl; _lostRateCur = campaign.LostRateCur; _lostRateTtl = campaign.LostRateTtl; _agentRelaxTimeCur = campaign.AgentRelaxTimeCur; _agentRelaxTimeTtl = campaign.AgentRelaxTimeTtl; foreach (CallJobResult callJobResult in Enum.GetValues(typeof(CallJobResult))) { _callJobResultCountRcn[(int)callJobResult] = campaign.GetCallJobResultCountRcn(callJobResult); _callJobResultCountTtl[(int)callJobResult] = campaign.GetCallJobResultCountTtl(callJobResult); } foreach (IncomingCallResult incomingCallResult in Enum.GetValues(typeof( IncomingCallResult))) { _incomingCallResultCountRcn[(int)incomingCallResult] = campaign.GetIncomingCallResultCountRcn(incomingCallResult); _incomingCallResultCountTtl[(int)incomingCallResult] = campaign.GetIncomingCallResultCountTtl(incomingCallResult); } foreach (AgentMode agentMode in Enum.GetValues(typeof(AgentMode))) { _agentModeCount[(int)agentMode] = campaign.GetAgentModeCount(agentMode); } foreach (AgentState agentState in Enum.GetValues(typeof(AgentState))) { _agentStateCount[(int)agentState] = campaign.GetAgentStateCount(agentState); _agentStateTimeAvgCur[(int)agentState] = campaign.GetAgentStateTimeAvgCur(agentState); _agentStateTimeAvgTtl[(int)agentState] = campaign.GetAgentStateTimeAvgTtl(agentState); } foreach (CallJobState callJobState in Enum.GetValues(typeof(CallJobState))) { _callJobStateCount[(int)callJobState] = campaign.GetCallJobStateCount(callJobState); } foreach (IncomingCallState incomingCallState in Enum.GetValues(typeof( IncomingCallState))) { _incomingCallStateCount[(int)incomingCallState] = campaign.GetIncomingCallStateCount(incomingCallState); } _agentCount = 0; foreach (int count in _agentModeCount) { _agentCount += count; } _callJobCount = 0; foreach (int count in _callJobStateCount) { _callJobCount += count; } _incomingCallCount = 0; foreach (int count in _incomingCallStateCount) { _incomingCallCount += count; } // Verlaufsdaten aktualisieren RefreshDataCollections(campaign); // wenn Kampagnencode geändert if (code != _code) { // zugeordnete Frontends aus Kampagne entfernen foreach (Frontend frontend in (ArrayList)_frontends.Clone()) { frontend.UnassignCampaign(); } // zugehörige Frontends suchen und Kampagne zuordnen foreach (Frontend frontend in _campaignControl.MainControl.FrontendControl) { if (frontend.CampaignCode == _code) { frontend.AssignCampaign(this); } } } else { // sonst, wenn Kampagnenname geändert if (name != _name) { // zugeordnete Frontends aktualisieren foreach (Frontend frontend in _frontends) { frontend.RefreshCampaign(); } } } // Kampagnenverwaltung aktualisieren _campaignControl.RefreshCampaign(this); }
/// <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; _deviceMode = frontend.DeviceMode; _deviceState = frontend.DeviceState; _lastDeviceStateChange = frontend.LastDeviceStateChange; _extension = frontend.Extension; _extensionQueueSize = frontend.ExtensionQueueSize; _autoRecording = frontend.AutoRecording; _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); } // Kampagnenanmeldungen aktualisieren RefreshCampaignSessions(frontend.CampaignSessions); // 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); } } // Frontendverwaltung aktualisieren _frontendControl.RefreshFrontend(this); }