/// <summary> /// initialisiert Kampagne /// </summary> public Campaign(itCampus.bb.Monitor.Campaign campaign, CampaignControl campaignControl) { // Parameter initialisieren _key = campaign.Key; _callJobResultCountRcn = new int[17]; _callJobResultCountTtl = new int[17]; _incomingCallResultCountRcn = new int[5]; _incomingCallResultCountTtl = new int[5]; _agentModeCount = new int[3]; _agentStateCount = new int[9]; _agentStateTimeAvgCur = new int[9]; _agentStateTimeAvgTtl = new int[9]; _callJobStateCount = new int[9]; _incomingCallStateCount = new int[4]; // Verlaufsdaten initialisieren InitializeDataCollections(); // Kampagne zu Kampagnenverwaltung hinzufügen _campaignControl = campaignControl; _campaignControl.AddCampaign(this); // Parameter aktualisiern RefreshParameters(campaign); }
/// <summary> /// schließt Kampagne ab /// </summary> public void Terminate() { // zugeordnete Frontends aus Kampagne entfernen foreach (Frontend frontend in (ArrayList)_frontends.Clone()) { frontend.UnassignCampaign(); } // Kampagne aus Kampagnenverwaltung entfernen _campaignControl.RemoveCampaign(this); _campaignControl = null; // Verlaufsdaten freigeben TerminateDataCollections(); }
/// <summary> /// Clean up any resources being used. /// </summary> protected override void Dispose(bool disposing) { // Kampagnenverwaltung freigeben _campaignControl.OnAddCampaign -= new CampaignControl.CampaignEventHandler( _campaignControl_OnAddCampaign); _campaignControl.OnRefreshCampaign -= new CampaignControl.CampaignEventHandler( _campaignControl_OnRefreshCampaign); _campaignControl.OnRemoveCampaign -= new CampaignControl.CampaignEventHandler( _campaignControl_OnRemoveCampaign); _campaignControl = null; if (disposing) { if (components != null) { components.Dispose(); } } base.Dispose(disposing); }
/// <summary> /// initialisiert Kampagnenseite /// </summary> public CampaignPage(CampaignControl campaignControl) { // This call is required by the Windows.Forms Form Designer. InitializeComponent(); // Kampagnenansicht initialisieren _campaignView = new CampaignView(); _campaignView.Visible = false; _campaignView.Dock = DockStyle.Fill; // Kampagnenansicht zu Seite hinzufügen panelBottom.Controls.Add(_campaignView); // Kampagnenverwaltung referenzieren _campaignControl = campaignControl; _campaignControl.OnAddCampaign += new CampaignControl.CampaignEventHandler( _campaignControl_OnAddCampaign); _campaignControl.OnRefreshCampaign += new CampaignControl.CampaignEventHandler( _campaignControl_OnRefreshCampaign); _campaignControl.OnRemoveCampaign += new CampaignControl.CampaignEventHandler( _campaignControl_OnRemoveCampaign); }
/// <summary> /// initialisiert Hauptobjekt /// </summary> public MainControl() { // Einstellungen initialisieren Settings.Initialize(); // Assembly ermitteln Assembly assembly = Assembly.GetAssembly(this.GetType()); // Protokoll initialisieren Logger.Initialize(Tools.GetFileName(assembly), Settings.Instance.LogEnabled, Settings.Instance.LogLevel); // Programmversion protokollieren Logger.Log.Info("[Info] -> " + Tools.GetFileName(assembly) + " " + Tools.GetFileVersion(assembly)); // Einstellungen protokollieren Logger.Log.Info("[Info] -> MonitorCode: " + Settings.Instance.MonitorCode + ", RefreshInterval: " + Settings.Instance.RefreshInterval + ", ChartHistoryLength: " + Settings.Instance.ChartHistoryLength + ", DeviceCode: " + Settings.Instance.DeviceCode + ", CoachingPermissionRequired: " + Settings.Instance.CoachingPermissionRequired + ", AutoStopCoaching: " + Settings.Instance.AutoStopCoaching + ", LogEnabled: " + Settings.Instance.LogEnabled + ", LogLevel: " + Settings.Instance.LogLevel); // Objektverwaltung initialisieren _frontendControl = new FrontendControl(this); _campaignControl = new CampaignControl(this); _conferenceControl = new ConferenceControl(this); _siteControl = new SiteControl(this); _deviceControl = new DeviceControl(this); // Schnittstelle zum Dialer initialisieren _monitor = new Monitor(); _monitor.OnAddFrontend += new Monitor.OnAddFrontendEventHandler( _monitor_OnAddFrontend); _monitor.OnRefreshFrontend += new Monitor.OnRefreshFrontendEventHandler( _monitor_OnRefreshFrontend); _monitor.OnRemoveFrontend += new Monitor.OnRemoveFrontendEventHandler( _monitor_OnRemoveFrontend); _monitor.OnAddCampaign += new Monitor.OnAddCampaignEventHandler( _monitor_OnAddCampaign); _monitor.OnRefreshCampaign += new Monitor.OnRefreshCampaignEventHandler( _monitor_OnRefreshCampaign); _monitor.OnRemoveCampaign += new Monitor.OnRemoveCampaignEventHandler( _monitor_OnRemoveCampaign); _monitor.OnAddConference += new Monitor.OnAddConferenceEventHandler( _monitor_OnAddConference); _monitor.OnRefreshConference += new Monitor.OnRefreshConferenceEventHandler( _monitor_OnRefreshConference); _monitor.OnRemoveConference += new Monitor.OnRemoveConferenceEventHandler( _monitor_OnRemoveConference); _monitor.OnAgentLost += new Monitor.OnAgentLostEventHandler( _monitor_OnAgentLost); _monitor.OnDeviceTerminated += new Monitor.OnDeviceTerminatedEventHandler( _monitor_OnDeviceTerminated); _monitor.OnConnectionLost += new Monitor.OnConnectionLostEventHandler( _monitor_OnConnectionLost); // Verbindung zum Dialer herstellen MonitorConnect(); MonitorLogonDialer(Settings.Instance.MonitorCode, Settings.Instance.RefreshInterval); }
/// <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); }