public static void Initialize(ISFDCListener subscirber, IAgentDetails agentDetails, IConfService confService) { try { _logger = Log.GenInstance(); _logger.Info("Initialize: Reading Configuration and Initializing Properties......"); AgentDetails = agentDetails; ConfigService = confService; SFDCListener = subscirber; ReadAdvancedSearchOptions();// Reading Advanced Search Configurations foreach (string sfdcObjectName in SFDCOptions.SFDCPopupPages) { switch (sfdcObjectName) { case "lead": ReadLeadConfigurations(sfdcObjectName); break; case "contact": ReadContactConfigurations(sfdcObjectName); break; case "account": ReadAccountConfigurations(sfdcObjectName); break; case "case": ReadCaseConfigurations(sfdcObjectName); break; case "opportunity": ReadOpportunityConfigurations(sfdcObjectName); break; case "useractivity": _logger.Info("Initialize: Reading User Profile Level Activity Configuration and Initializing Properties......"); UserActivityConfigs = ReadConfiguration.GetInstance().ReadSFDCUtilityConfig(AgentDetails.MyApplication, AgentDetails.AgentGroups, AgentDetails.Person, sfdcObjectName); break; default: if (sfdcObjectName.Contains("customobject")) { ReadCustomObjectConfigurations(sfdcObjectName); } break; } } //Read Profile Activity/ UserActivity ReadProfileActivityLog(); if (!String.IsNullOrEmpty(CommonPopupObjects)) { CommonPopupObjects = CommonPopupObjects.Substring(0, CommonPopupObjects.Length - 1); } } catch (Exception generalException) { _logger.Error("Initialize: Error Occurred while Reading SFDC Object configurations : " + generalException.ToString()); } }
/// <summary> /// Get Subscriber object /// </summary> /// <param name="subscirber"></param> public void SubscribeSFDCPopup(ISFDCListener subscirber, ILog _logger, IAgentDetails agentDetails, IConfService confService) { if (subscirber != null && _logger != null && agentDetails != null && confService != null) { this._logger = Log.GenInstance().CreateLogger(subscirber, _logger); InitializeSFDCIntegration(subscirber, agentDetails, confService); _logger.Info("*****************************************************************"); this._logger.Info("SFDCController: Assembly Name " + Assembly.GetExecutingAssembly().GetName().Name); this._logger.Info("SFDCController: Assembly Version " + Assembly.GetExecutingAssembly().GetName().Version); _logger.Info("*****************************************************************"); _logger.Info("Subscribe : SFDCController Subscription Success"); } else { throw new Exception("SFDC Popup Subscription Failed because Supplied Parameter(s) are null"); } }
public static void InitializeUtils(ISFDCListener _subscirber, IAgentDetails _agentDetails, IConfService _confService) { try { logger = Log.GenInstance(); logger.Info("InitializeUtils : Reading Configuration and Initializing Properties......"); AgentDetails = _agentDetails; ConfigService = _confService; SFDCListener = _subscirber; foreach (string sfdcObject in SFDCOptions.SFDCPopupPages) { KeyValueCollection ConfigData = null; if (sfdcObject == "lead") { CommonPopupObjects += "Lead,"; logger.Info("InitializeUtils : Reading SFDCLead Configuration and Initializing Properties......"); LeadConfigs = ReadConfiguration.GetInstance().ReadSFDCObjectConfig(_agentDetails.MyApplication, _agentDetails.AgentGroups, _agentDetails.Person, sfdcObject); if (LeadConfigs != null) { LeadVoiceOptions = ReadProperties.GetInstance().GetSFDCObjectVoiceProperties(LeadConfigs, sfdcObject); LeadChatOptions = ReadProperties.GetInstance().GetSFDCObjectChatProperties(LeadConfigs, sfdcObject); ConfigData = ReadConfiguration.GetInstance().ReadBusinessAttribuiteConfig(ConfigService, _agentDetails.Person.Tenant.DBID, SFDCOptions.ActivityLogBusinessAttribute, "voice." + sfdcObject); if (ConfigData != null) { VoiceActivityLogCollection.Add(sfdcObject, ConfigData); } ConfigData = ReadConfiguration.GetInstance().ReadBusinessAttribuiteConfig(ConfigService, _agentDetails.Person.Tenant.DBID, SFDCOptions.ActivityLogBusinessAttribute, "chat." + sfdcObject); if (ConfigData != null) { ChatActivityLogCollection.Add(sfdcObject, ConfigData); } LeadNewRecordConfigs = ReadConfiguration.GetInstance().ReadBusinessAttribuiteConfig(ConfigService, _agentDetails.Person.Tenant.DBID, SFDCOptions.NewRecordDataBusinessAttribute, sfdcObject); } else { logger.Info("InitializeUtils : No Lead Configuration Found."); } } else if (sfdcObject == "contact") { CommonPopupObjects += "Contact,"; logger.Info("InitializeUtils : Reading SFDCContact Configuration and Initializing Properties......"); ContactConfigs = ReadConfiguration.GetInstance().ReadSFDCObjectConfig(_agentDetails.MyApplication, _agentDetails.AgentGroups, _agentDetails.Person, sfdcObject); if (ContactConfigs != null) { ContactVoiceOptions = ReadProperties.GetInstance().GetSFDCObjectVoiceProperties(ContactConfigs, sfdcObject); ContactChatOptions = ReadProperties.GetInstance().GetSFDCObjectChatProperties(ContactConfigs, sfdcObject); ConfigData = ReadConfiguration.GetInstance().ReadBusinessAttribuiteConfig(ConfigService, _agentDetails.Person.Tenant.DBID, SFDCOptions.ActivityLogBusinessAttribute, "voice." + sfdcObject); if (ConfigData != null) { VoiceActivityLogCollection.Add(sfdcObject, ConfigData); } ConfigData = ReadConfiguration.GetInstance().ReadBusinessAttribuiteConfig(ConfigService, _agentDetails.Person.Tenant.DBID, SFDCOptions.ActivityLogBusinessAttribute, "chat." + sfdcObject); if (ConfigData != null) { ChatActivityLogCollection.Add(sfdcObject, ConfigData); } ContactNewRecordConfigs = ReadConfiguration.GetInstance().ReadBusinessAttribuiteConfig(ConfigService, _agentDetails.Person.Tenant.DBID, SFDCOptions.NewRecordDataBusinessAttribute, sfdcObject); } else { logger.Info("InitializeUtils : No Contact Configuration Found."); } } else if (sfdcObject == "account") { CommonPopupObjects += "Account,"; logger.Info("InitializeUtils : Reading SFDCAccount Configuration and Initializing Properties......"); AccountConfigs = ReadConfiguration.GetInstance().ReadSFDCObjectConfig(_agentDetails.MyApplication, _agentDetails.AgentGroups, _agentDetails.Person, sfdcObject); if (AccountConfigs != null) { AccountVoiceOptions = ReadProperties.GetInstance().GetSFDCObjectVoiceProperties(AccountConfigs, sfdcObject); AccountChatOptions = ReadProperties.GetInstance().GetSFDCObjectChatProperties(AccountConfigs, sfdcObject); AccountNewRecordConfigs = ReadConfiguration.GetInstance().ReadBusinessAttribuiteConfig(ConfigService, _agentDetails.Person.Tenant.DBID, SFDCOptions.NewRecordDataBusinessAttribute, sfdcObject); ConfigData = ReadConfiguration.GetInstance().ReadBusinessAttribuiteConfig(ConfigService, _agentDetails.Person.Tenant.DBID, SFDCOptions.ActivityLogBusinessAttribute, "voice." + sfdcObject); if (ConfigData != null) { VoiceActivityLogCollection.Add(sfdcObject, ConfigData); } ConfigData = ReadConfiguration.GetInstance().ReadBusinessAttribuiteConfig(ConfigService, _agentDetails.Person.Tenant.DBID, SFDCOptions.ActivityLogBusinessAttribute, "chat." + sfdcObject); if (ConfigData != null) { ChatActivityLogCollection.Add(sfdcObject, ConfigData); } } else { logger.Info("InitializeUtils : No Account Configuration Found."); } } else if (sfdcObject == "case") { CommonPopupObjects += "Case,"; logger.Info("InitializeUtils : Reading SFDCCase Configuration and Initializing Properties......"); CaseConfigs = ReadConfiguration.GetInstance().ReadSFDCObjectConfig(_agentDetails.MyApplication, _agentDetails.AgentGroups, _agentDetails.Person, sfdcObject); if (CaseConfigs != null) { CaseVoiceOptions = ReadProperties.GetInstance().GetSFDCObjectVoiceProperties(CaseConfigs, sfdcObject); CaseChatOptions = ReadProperties.GetInstance().GetSFDCObjectChatProperties(CaseConfigs, sfdcObject); CaseNewRecordConfigs = ReadConfiguration.GetInstance().ReadBusinessAttribuiteConfig(ConfigService, _agentDetails.Person.Tenant.DBID, SFDCOptions.NewRecordDataBusinessAttribute, sfdcObject); ConfigData = ReadConfiguration.GetInstance().ReadBusinessAttribuiteConfig(ConfigService, _agentDetails.Person.Tenant.DBID, SFDCOptions.ActivityLogBusinessAttribute, "voice." + sfdcObject); if (ConfigData != null) { VoiceActivityLogCollection.Add(sfdcObject, ConfigData); } ConfigData = ReadConfiguration.GetInstance().ReadBusinessAttribuiteConfig(ConfigService, _agentDetails.Person.Tenant.DBID, SFDCOptions.ActivityLogBusinessAttribute, "chat." + sfdcObject); if (ConfigData != null) { ChatActivityLogCollection.Add(sfdcObject, ConfigData); } } else { logger.Info("InitializeUtils : No Case Configuration Found."); } } else if (sfdcObject == "opportunity") { CommonPopupObjects += "Opportunity,"; logger.Info("InitializeUtils : Reading SFDCOpportunity Configuration and Initializing Properties......"); OpportunityConfigs = ReadConfiguration.GetInstance().ReadSFDCObjectConfig(_agentDetails.MyApplication, _agentDetails.AgentGroups, _agentDetails.Person, sfdcObject); if (OpportunityConfigs != null) { OpportunityVoiceOptions = ReadProperties.GetInstance().GetSFDCObjectVoiceProperties(OpportunityConfigs, sfdcObject); OpportunityChatOptions = ReadProperties.GetInstance().GetSFDCObjectChatProperties(OpportunityConfigs, sfdcObject); OpportunityNewRecordConfigs = ReadConfiguration.GetInstance().ReadBusinessAttribuiteConfig(ConfigService, _agentDetails.Person.Tenant.DBID, SFDCOptions.NewRecordDataBusinessAttribute, sfdcObject); ConfigData = ReadConfiguration.GetInstance().ReadBusinessAttribuiteConfig(ConfigService, _agentDetails.Person.Tenant.DBID, SFDCOptions.ActivityLogBusinessAttribute, "voice." + sfdcObject); if (ConfigData != null) { VoiceActivityLogCollection.Add(sfdcObject, ConfigData); } ConfigData = ReadConfiguration.GetInstance().ReadBusinessAttribuiteConfig(ConfigService, _agentDetails.Person.Tenant.DBID, SFDCOptions.ActivityLogBusinessAttribute, "chat." + sfdcObject); if (ConfigData != null) { ChatActivityLogCollection.Add(sfdcObject, ConfigData); } } else { logger.Info("InitializeUtils : No Opportunity Configuration Found."); } } else if (sfdcObject.Contains("customobject")) { logger.Info("InitializeUtils : Reading SFDCCustomObject Configuration and Initializing Properties......"); logger.Info("InitializeUtils : Object Name : " + sfdcObject); KeyValueCollection customConfig = ReadConfiguration.GetInstance().ReadSFDCObjectConfig(_agentDetails.MyApplication, _agentDetails.AgentGroups, _agentDetails.Person, sfdcObject); if (customConfig != null) { CustomObjectConfigs.Add(sfdcObject, customConfig); VoiceOptions voiceOptions = ReadProperties.GetInstance().GetSFDCObjectVoiceProperties(customConfig, sfdcObject); if (voiceOptions != null) { if (voiceOptions.ObjectName != null) { CommonPopupObjects += voiceOptions.ObjectName + ","; CustomObjectNames.Add(voiceOptions.ObjectName, sfdcObject); } CustomObjectVoiceOptions.Add(sfdcObject, voiceOptions); } ChatOptions chatOptions = ReadProperties.GetInstance().GetSFDCObjectChatProperties(customConfig, sfdcObject); if (chatOptions != null) { CustomObjectChatOptions.Add(sfdcObject, chatOptions); } CustomObjectNewRecordConfigs.Add(sfdcObject, ReadConfiguration.GetInstance().ReadBusinessAttribuiteConfig(ConfigService, _agentDetails.Person.Tenant.DBID, SFDCOptions.NewRecordDataBusinessAttribute, sfdcObject)); ConfigData = ReadConfiguration.GetInstance().ReadBusinessAttribuiteConfig(ConfigService, _agentDetails.Person.Tenant.DBID, SFDCOptions.ActivityLogBusinessAttribute, "voice." + sfdcObject); if (ConfigData != null) { VoiceActivityLogCollection.Add(sfdcObject, ConfigData); } ConfigData = ReadConfiguration.GetInstance().ReadBusinessAttribuiteConfig(ConfigService, _agentDetails.Person.Tenant.DBID, SFDCOptions.ActivityLogBusinessAttribute, "chat." + sfdcObject); if (ConfigData != null) { ChatActivityLogCollection.Add(sfdcObject, ConfigData); } } else { logger.Info("InitializeUtils : No Configuration Found for the CustomObject : " + sfdcObject); } } else if (sfdcObject == "useractivity") { logger.Info("InitializeUtils : Reading SFDCUserActivity Configuration and Initializing Properties......"); UserActivityConfigs = ReadConfiguration.GetInstance().ReadSFDCObjectConfig(_agentDetails.MyApplication, _agentDetails.AgentGroups, _agentDetails.Person, sfdcObject); if (UserActivityConfigs != null) { UserActivityVoiceOptions = ReadProperties.GetInstance().GetSFDCUserActivityVoiceProperties(UserActivityConfigs, sfdcObject); KeyValueCollection voiceUserActivityLog = ReadConfiguration.GetInstance().ReadBusinessAttribuiteConfig(ConfigService, _agentDetails.Person.Tenant.DBID, SFDCOptions.ActivityLogBusinessAttribute, "voice." + sfdcObject); if (voiceUserActivityLog != null) { VoiceActivityLogCollection.Add(sfdcObject, voiceUserActivityLog); } UserActivityChatOptions = ReadProperties.GetInstance().GetSFDCUserActivityChatProperties(UserActivityConfigs, sfdcObject); KeyValueCollection chatuseractivitylog = ReadConfiguration.GetInstance().ReadBusinessAttribuiteConfig(ConfigService, _agentDetails.Person.Tenant.DBID, SFDCOptions.ActivityLogBusinessAttribute, "chat." + sfdcObject); if (chatuseractivitylog != null) { ChatActivityLogCollection.Add(sfdcObject, chatuseractivitylog); } } else { logger.Info("InitializeUtils : No SFDCUserActivity Configuration Found."); } } } if (!String.IsNullOrEmpty(CommonPopupObjects)) { CommonPopupObjects = CommonPopupObjects.Substring(0, CommonPopupObjects.Length - 1); } if (SFDCOptions.CanUseCommonSearchData) { //Read business attribute for Profile level activity if (!string.IsNullOrWhiteSpace(SFDCOptions.ProfileActivityBusinessAttributeName)) { ProfileLevelActivity = ReadConfiguration.GetInstance().ReadBusinessAttribuiteConfig(ConfigService, _agentDetails.Person.Tenant.DBID, SFDCOptions.ProfileActivityBusinessAttributeName, "voice.useractivity"); } else { logger.Info("ProfileLevel Activity Log Creation is not configured"); } } } catch (Exception generalException) { logger.Error("InitializeUtils : Error Occurred while Reading SFDC Object configurations : " + generalException.ToString()); } }
/// <summary> /// Initialize SFDC Adapter /// </summary> /// <param name="agentDetails">Agent Details</param> /// <param name="tServer">T-Server Protocol</param> /// <param name="configProtocol">Config Server Protocol</param> private void InitializeSFDCIntegration(ISFDCListener subscirber, IAgentDetails agentDetails, IConfService confService) { try { _logger.Info("InitializeSFDCIntegration : Initializing Common Properties for SFDC Popup"); Settings.GeneralConfigs = ReadConfiguration.GetInstance().ReadGeneralConfigurations(agentDetails.MyApplication, agentDetails.AgentGroups, agentDetails.Person); if (Settings.GeneralConfigs != null) { Settings.SFDCOptions = Pointel.Salesforce.Adapter.Configurations.ReadProperties.GetInstance().GetSFDCGeneralProperties(Settings.GeneralConfigs); if (Settings.SFDCOptions != null) { if (Settings.SFDCOptions.EnableSFDCIntegration) { // Initializing Common Properties in Settings Settings.Initialize(subscirber, agentDetails, confService); //Start SFDC Server if (Settings.SFDCOptions.SFDCPopupChannels != null && Settings.SFDCOptions.SFDCConnectPort != 0) { SFDCHttpServer.GetInstance().StartListener(Environment.CurrentDirectory + @"\Files", Settings.SFDCOptions.SFDCConnectPort); if (Settings.IsVoiceEnabled) { _voicePopup = new VoiceEventHandler(); } if (Settings.IsChatEnabled) { _chatPopup = new ChatEventHandler(); } if (Settings.IsEmailEnabled) { _emailPopup = new EmailEventHandler(); } //PopupBrowser if (Settings.SFDCOptions.SFDCPopupContainer != null) { if (Settings.SFDCOptions.SFDCPopupContainer.Equals("browser")) { if (Settings.SFDCOptions.SFDCLoginURL != null) { this._logger.Info("Lauching SFDC URL : " + PopupURL(Settings.SFDCOptions.SFDCLoginURL, Settings.SFDCOptions.SFDCPopupBrowserName, Settings.SFDCOptions.EnableAddressbar, Settings.SFDCOptions.EnableStatusbar)); } else { this._logger.Info("SFDC Login URL is null. "); } } else { Settings.SFDCListener.ReceiveSFDCWindow(new SFDCPopupWindow(Settings.SFDCOptions.SFDCLoginURL)); } } else { this._logger.Info("SFDC Popup Container is null. "); } if (!Settings.SFDCListener.IsSFDCConnected && Settings.SFDCOptions.AlertSFDCConnectionStatus) { Settings.SFDCListener.SFDCConnectionStatus(LogMode.Error, Settings.SFDCOptions.SFDCConnectionFailureMessage); } } else { this._logger.Info("SFDC Popup Aborted, because either popup channel or port number is empty "); this._logger.Info("SFDC Popup Channels : " + Settings.SFDCOptions.SFDCPopupChannels); this._logger.Info("SFDC Port Number : " + Settings.SFDCOptions.SFDCConnectPort); } } else { _logger.Info("InitializeSFDCIntegration : SFDC Integration Disabled"); } } else { _logger.Info("InitializeSFDCIntegration : SFDC General Config object is null..."); } } else { _logger.Info("InitializeSFDCIntegration : SFDC popup can not be started because SFDC General Configuration has is found."); } } catch (Exception generalException) { _logger.Error("InitializeSFDCIntegration : Error Occurred while start SFDC Popup " + generalException.ToString()); } }