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