コード例 #1
0
        /// <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);
        }
コード例 #2
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;
            _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);
        }