private bool GetCanCreateProfileActivity(SFDCCallType callType, VoiceOptions voiceOptions, bool IsNoRecord = false) { bool canCreateNoRecordMultiMatchLog = false; switch (callType) { case SFDCCallType.Inbound: canCreateNoRecordMultiMatchLog = IsNoRecord ? voiceOptions.InbCanCreateNorecordActivity : voiceOptions.InbCanCreateMultimatchActivity; break; case SFDCCallType.OutboundFailure: case SFDCCallType.OutboundSuccess: canCreateNoRecordMultiMatchLog = IsNoRecord ? voiceOptions.OutCanCreateNorecordActivity : voiceOptions.OutCanCreateMultimatchActivity; break; case SFDCCallType.ConsultSuccess: case SFDCCallType.ConsultReceived: case SFDCCallType.ConsultFailure: canCreateNoRecordMultiMatchLog = IsNoRecord ? voiceOptions.ConCanCreateNorecordActivity : voiceOptions.ConCanCreateMultimatchActivity; break; } return(canCreateNoRecordMultiMatchLog); }
private string GetNoRecordFoundAction(SFDCCallType calltype, VoiceOptions options) { string NoMatchRecordAction = string.Empty; switch (calltype) { case SFDCCallType.Inbound: NoMatchRecordAction = options.InbNoMatchRecordAction; break; case SFDCCallType.OutboundFailure: case SFDCCallType.OutboundSuccess: NoMatchRecordAction = options.OutNoMatchRecordAction; break; case SFDCCallType.ConsultFailure: case SFDCCallType.ConsultReceived: case SFDCCallType.ConsultSuccess: NoMatchRecordAction = options.ConNoMatchRecordAction; break; } return(NoMatchRecordAction); }
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> /// Gets Custom Object Popup Data /// </summary> /// <param name="message"></param> /// <param name="callType"></param> /// <param name="objectName"></param> /// <returns></returns> public CustomObjectData GetCustomObjectVoicePopupData(IMessage message, SFDCCallType callType, string objectName) { try { this.logger.Info("GetCustomObjectVoicePopupData : Reading CustomObject Popup Data....."); this.logger.Info("GetCustomObjectVoicePopupData : Event Name : " + message.Name); this.logger.Info("GetCustomObjectVoicePopupData : CallType Name : " + callType.ToString()); dynamic popupEvent = Convert.ChangeType(message, message.GetType()); if (popupEvent != null && customvoiceOptions.ContainsKey(objectName)) { CustomObjectData custom = new CustomObjectData(); VoiceOptions customObjectOptions = customvoiceOptions[objectName]; #region Collect CustomObject Popup data custom.SearchData = this.sfdcUtilityHelper.GetVoiceSearchValue(customObjectOptions, message, callType); custom.ObjectName = customObjectOptions.ObjectName; custom.NoRecordFound = SFDCObjectHelper.GetNoRecordFoundAction(callType, customObjectOptions); custom.MultipleMatchRecord = SFDCObjectHelper.GetMultiMatchRecordAction(callType, customObjectOptions); custom.NewRecordFieldIds = customObjectOptions.NewrecordFieldIds; custom.SearchCondition = customObjectOptions.SearchCondition; custom.CreateLogForNewRecord = customObjectOptions.CanCreateLogForNewRecordCreate; custom.MaxRecordOpenCount = customObjectOptions.MaxNosRecordOpen; custom.SearchpageMode = customObjectOptions.SearchPageMode; custom.CustomObjectURL = customObjectOptions.CustomObjectURL; custom.PhoneNumberSearchFormat = customObjectOptions.PhoneNumberSearchFormat; custom.CanCreateNoRecordActivityLog = SFDCObjectHelper.GetCanCreateProfileActivity(callType, customObjectOptions, true); custom.CanPopupNoRecordActivityLog = SFDCObjectHelper.GetCanPopupProfileActivity(callType, customObjectOptions, true); custom.CanCreateMultiMatchActivityLog = SFDCObjectHelper.GetCanCreateProfileActivity(callType, customObjectOptions); custom.CanPopupMultiMatchActivityLog = SFDCObjectHelper.GetCanPopupProfileActivity(callType, customObjectOptions); custom.CanCreateProfileActivityforInbNoRecord = customObjectOptions.CanCreateProfileActivityforInbNoRecord; custom.CanCreateProfileActivityforOutNoRecord = customObjectOptions.CanCreateProfileActivityforOutNoRecord; custom.CanCreateProfileActivityforConNoRecord = customObjectOptions.CanCreateProfileActivityforConNoRecord; if (CustomVoiceRecordConfigs != null && CustomVoiceRecordConfigs.ContainsKey(objectName)) { KeyValueCollection RecordConfig = CustomVoiceRecordConfigs[objectName]; if (RecordConfig != null) { if (custom.NoRecordFound.Equals("createnew")) { custom.CreateRecordFieldData = this.sfdcUtility.GetCreateActivityLogData(RecordConfig, message, callType); } } } KeyValueCollection LogConfig = null; if (this.CustomVoiceLogConfigs != null && this.CustomVoiceLogConfigs.ContainsKey(objectName)) { LogConfig = this.CustomVoiceLogConfigs[objectName]; } if (callType == SFDCCallType.InboundVoice) { custom.CreateActvityLog = customObjectOptions.InboundCanCreateLog; if (LogConfig != null) { if (customObjectOptions.InboundCanCreateLog) { custom.ActivityLogData = this.sfdcUtility.GetCreateActivityLogData(LogConfig, popupEvent, callType); } } } else if (callType == SFDCCallType.OutboundVoiceSuccess) { custom.CreateActvityLog = customObjectOptions.OutboundCanCreateLog; if (LogConfig != null) { if (customObjectOptions.OutboundCanCreateLog) { custom.ActivityLogData = this.sfdcUtility.GetCreateActivityLogData(LogConfig, popupEvent, callType); } } } else if (callType == SFDCCallType.OutboundVoiceFailure) { custom.CreateActvityLog = customObjectOptions.OutboundFailureCanCreateLog; if (LogConfig != null) { if (customObjectOptions.OutboundFailureCanCreateLog) { custom.ActivityLogData = this.sfdcUtility.GetCreateActivityLogData(LogConfig, popupEvent, callType); } } } else if (callType == SFDCCallType.ConsultVoiceReceived) { custom.CreateActvityLog = customObjectOptions.ConsultCanCreateLog; if (LogConfig != null) { if (customObjectOptions.ConsultCanCreateLog) { custom.ActivityLogData = this.sfdcUtility.GetCreateActivityLogData(LogConfig, popupEvent, callType); } } } return(custom); } #endregion Collect CustomObject Popup data } catch (Exception generalException) { this.logger.Error("GetCustomObjectVoicePopupData : Error occurred while reading Contact Data on EventRinging Event : " + generalException.ToString()); } return(null); }
/// <summary> /// Gets the Custom Objects Update Data /// </summary> /// <param name="message"></param> /// <param name="callType"></param> /// <param name="duration"></param> /// <param name="objectName"></param> /// <returns></returns> public CustomObjectData GetCusotmObjectVoiceUpdateData(IMessage message, SFDCCallType callType, string duration, string objectName) { try { this.logger.Info("GetCusotmObjectVoiceUpdateData : Reading CustomObject Update Data....."); this.logger.Info("GetCusotmObjectVoiceUpdateData : Event Name : " + message.Name); dynamic popupEvent = Convert.ChangeType(message, message.GetType()); if (popupEvent != null && customvoiceOptions.ContainsKey(objectName)) { CustomObjectData customObject = new CustomObjectData(); VoiceOptions currentObjectOptions = customvoiceOptions[objectName]; KeyValueCollection currentObjectConfigs = null; KeyValueCollection currentObjectRecordConfig = null; if (CustomVoiceLogConfigs != null && CustomVoiceLogConfigs.ContainsKey(objectName)) { currentObjectConfigs = CustomVoiceLogConfigs[objectName]; } if (CustomVoiceRecordConfigs != null && CustomVoiceRecordConfigs.ContainsKey(objectName)) { currentObjectRecordConfig = CustomVoiceRecordConfigs[objectName]; } #region Collect customObject Data if (currentObjectOptions != null) { customObject.ObjectName = currentObjectOptions.ObjectName; customObject.CustomObjectURL = currentObjectOptions.CustomObjectURL; if (callType == SFDCCallType.InboundVoice) { if (currentObjectOptions.InboundCanUpdateLog) { customObject.UpdateActivityLog = true; customObject.UpdateActivityLogData = this.sfdcUtility.GetUpdateActivityLogData(currentObjectConfigs, popupEvent, callType, duration); } } else if (callType == SFDCCallType.OutboundVoiceSuccess || callType == SFDCCallType.OutboundVoiceFailure) { if (currentObjectOptions.OutboundCanUpdateLog) { customObject.UpdateActivityLog = true; customObject.UpdateActivityLogData = this.sfdcUtility.GetUpdateActivityLogData(currentObjectConfigs, popupEvent, callType, duration); } } else if (callType == SFDCCallType.ConsultVoiceReceived) { if (currentObjectOptions.ConsultCanUpdateLog) { customObject.UpdateActivityLog = true; customObject.UpdateActivityLogData = this.sfdcUtility.GetUpdateActivityLogData(currentObjectConfigs, popupEvent, callType, duration); } } if (currentObjectRecordConfig != null) { if (currentObjectOptions.CanUpdateRecordData) { customObject.UpdateRecordFields = true; customObject.UpdateRecordFieldsData = this.sfdcUtility.GetUpdateActivityLogData(currentObjectRecordConfig, popupEvent, callType, duration); } } } #endregion Collect customObject Data return(customObject); } } catch (Exception generalException) { this.logger.Error("GetCusotmObjectVoiceUpdateData : Error occurred while reading customObject Data : " + generalException.ToString()); } return(null); }
private static void ReadCustomObjectConfigurations(string sfdcObjectName) { try { _logger.Info("Initialize: Reading CustomObject Configuration and Initializing Properties......"); _logger.Info("Initialize: Object Name : " + sfdcObjectName); KeyValueCollection customConfig = ReadConfiguration.GetInstance().ReadSFDCUtilityConfig(AgentDetails.MyApplication, AgentDetails.AgentGroups, AgentDetails.Person, sfdcObjectName); if (customConfig != null) { CustomObjectConfigs.Add(sfdcObjectName, customConfig); if (IsVoiceEnabled) { _logger.Info("Reading Voice Options for the " + sfdcObjectName + " object"); VoiceNewRecordCollection.Add(sfdcObjectName, ReadConfiguration.GetInstance().ReadBusinessAttribuiteConfig(ConfigService, AgentDetails.Person.Tenant.DBID, SFDCOptions.NewRecordDataBusinessAttribute, "voice." + sfdcObjectName)); VoiceOptions voiceOptions = ReadProperties.GetInstance().GetSFDCObjectVoiceProperties(customConfig, sfdcObjectName); if (voiceOptions != null) { if (voiceOptions.ObjectName != null && !CustomObjectNames.ContainsKey(voiceOptions.ObjectName + ",")) { CommonPopupObjects += voiceOptions.ObjectName + ","; CustomObjectNames.Add(voiceOptions.ObjectName, sfdcObjectName); } CustomObjectVoiceOptions.Add(sfdcObjectName, voiceOptions); } ConfigData = ReadConfiguration.GetInstance().ReadBusinessAttribuiteConfig(ConfigService, AgentDetails.Person.Tenant.DBID, SFDCOptions.ActivityLogBusinessAttribute, "voice." + sfdcObjectName); if (ConfigData != null) { VoiceActivityLogCollection.Add(sfdcObjectName, ConfigData); } } if (IsChatEnabled) { _logger.Info("Reading Chat Options for the " + sfdcObjectName + " object"); ChatNewRecordCollection.Add(sfdcObjectName, ReadConfiguration.GetInstance().ReadBusinessAttribuiteConfig(ConfigService, AgentDetails.Person.Tenant.DBID, SFDCOptions.NewRecordDataBusinessAttribute, "chat." + sfdcObjectName)); ChatOptions chatOptions = ReadProperties.GetInstance().GetSFDCObjectChatProperties(customConfig, sfdcObjectName); if (chatOptions != null) { if (chatOptions.ObjectName != null && !CustomObjectNames.ContainsKey(chatOptions.ObjectName + ",")) { CommonPopupObjects += chatOptions.ObjectName + ","; CustomObjectNames.Add(chatOptions.ObjectName, sfdcObjectName); } CustomObjectChatOptions.Add(sfdcObjectName, chatOptions); } ConfigData = ReadConfiguration.GetInstance().ReadBusinessAttribuiteConfig(ConfigService, AgentDetails.Person.Tenant.DBID, SFDCOptions.ActivityLogBusinessAttribute, "chat." + sfdcObjectName); if (ConfigData != null) { ChatActivityLogCollection.Add(sfdcObjectName, ConfigData); } } if (IsEmailEnabled) { _logger.Info("Reading Email Options for the " + sfdcObjectName + " object"); EmailOptions emailOptions = ReadProperties.GetInstance().GetSFDCObjectEmailProperties(customConfig, sfdcObjectName); if (emailOptions != null) { if (emailOptions.ObjectName != null && !CustomObjectNames.ContainsKey(emailOptions.ObjectName + ",")) { CommonPopupObjects += emailOptions.ObjectName + ","; CustomObjectNames.Add(emailOptions.ObjectName, sfdcObjectName); } CustomObjectEmailOptions.Add(sfdcObjectName, emailOptions); } EmailNewRecordCollection.Add(sfdcObjectName, ReadConfiguration.GetInstance().ReadBusinessAttribuiteConfig(ConfigService, AgentDetails.Person.Tenant.DBID, SFDCOptions.NewRecordDataBusinessAttribute, "email." + sfdcObjectName)); ConfigData = ReadConfiguration.GetInstance().ReadBusinessAttribuiteConfig(ConfigService, AgentDetails.Person.Tenant.DBID, SFDCOptions.ActivityLogBusinessAttribute, "email." + sfdcObjectName); if (ConfigData != null) { EmailActivityLogCollection.Add(sfdcObjectName, ConfigData); } } } else { _logger.Info("Initialize: CustomObject Configuration Not Found."); } } catch (Exception generalException) { _logger.Error("Error occurred in CustomObjectConfigurations() method, Exception:" + generalException.ToString()); } }
/// <summary> /// Gets Voice search Valus /// </summary> /// <param name="userData"></param> /// <param name="message"></param> /// <param name="voiceOptions"></param> /// <param name="callType"></param> /// <returns></returns> private string GetVoiceSearchValue(KeyValueCollection userData, IMessage message, VoiceOptions voiceOptions, SFDCCallType callType) { try { this.logger.Info("GetVoiceSearchValue : Reading Custom Object Popup Data....."); this.logger.Info("GetVoiceSearchValue : UserData Name : " + Convert.ToString(userData)); this.logger.Info("GetVoiceSearchValue : Event Name : " + message.Name); this.logger.Info("GetVoiceSearchValue : CallType Name : " + callType.ToString()); string[] userDataSearchKeys = null; string[] attributeSearchKeys = null; string searchValue = string.Empty; if (callType == SFDCCallType.Inbound) { userDataSearchKeys = (voiceOptions.InboundSearchUserDataKeys != null) ? voiceOptions.InboundSearchUserDataKeys.Split(',') : null; attributeSearchKeys = (voiceOptions.InboundSearchAttributeKeys != null) ? voiceOptions.InboundSearchAttributeKeys.Split(',') : null; } else if (callType == SFDCCallType.OutboundSuccess || callType == SFDCCallType.OutboundFailure) { userDataSearchKeys = (voiceOptions.OutboundSearchUserDataKeys != null) ? voiceOptions.OutboundSearchUserDataKeys.Split(',') : null; attributeSearchKeys = (voiceOptions.OutboundSearchAttributeKeys != null) ? voiceOptions.OutboundSearchAttributeKeys.Split(',') : null; } else if (callType == SFDCCallType.ConsultSuccess || callType == SFDCCallType.ConsultFailure) { return(this.sfdcObject.GetAttributeSearchValues(message, new string[] { "otherdn" })); } else if (callType == SFDCCallType.ConsultReceived) { userDataSearchKeys = (voiceOptions.ConsultSearchUserDataKeys != null) ? voiceOptions.ConsultSearchUserDataKeys.Split(',') : null; attributeSearchKeys = (voiceOptions.ConsultSearchAttributeKeys != null) ? voiceOptions.ConsultSearchAttributeKeys.Split(',') : null; } #region OLD //if (voiceOptions.SearchPriority == "user-data") //{ // if (userDataSearchKeys != null) // searchValue = this.sfdcObject.GetUserDataSearchValues(userData, userDataSearchKeys); // else if (attributeSearchKeys != null) // searchValue = this.sfdcObject.GetAttributeSearchValues(message, attributeSearchKeys); //} //else if (voiceOptions.SearchPriority == "attribute") //{ // searchValue = this.sfdcObject.GetAttributeSearchValues(message, attributeSearchKeys); //} //else if (voiceOptions.SearchPriority == "both") //{ // searchValue = this.sfdcObject.GetUserDataSearchValues(userData, userDataSearchKeys); // if (searchValue != string.Empty) // { // string temp = this.sfdcObject.GetAttributeSearchValues(message, attributeSearchKeys); // if (temp != string.Empty) // { // searchValue += "," + temp; // } // } // else // { // searchValue = this.sfdcObject.GetAttributeSearchValues(message, attributeSearchKeys); // } //} //return searchValue; #endregion OLD if (voiceOptions.SearchPriority == "user-data") { if (userDataSearchKeys != null && userData != null) { searchValue = this.sfdcObject.GetUserDataSearchValues(userData, userDataSearchKeys); if (!this.sfdcObject.ValidateSearchData(searchValue)) { searchValue = this.sfdcObject.GetAttributeSearchValues(message, attributeSearchKeys); } } else if (attributeSearchKeys != null) { searchValue = this.sfdcObject.GetAttributeSearchValues(message, attributeSearchKeys); } } else if (voiceOptions.SearchPriority == "attribute") { searchValue = this.sfdcObject.GetAttributeSearchValues(message, attributeSearchKeys); if (!this.sfdcObject.ValidateSearchData(searchValue)) { if (userDataSearchKeys != null && userData != null) { searchValue = this.sfdcObject.GetUserDataSearchValues(userData, userDataSearchKeys); } } } else if (voiceOptions.SearchPriority == "both") { if (userData != null) { searchValue = this.sfdcObject.GetUserDataSearchValues(userData, userDataSearchKeys); } if (!this.sfdcObject.ValidateSearchData(searchValue)) { searchValue = this.sfdcObject.GetAttributeSearchValues(message, attributeSearchKeys); } else { string temp = this.sfdcObject.GetAttributeSearchValues(message, attributeSearchKeys); if (temp != string.Empty) { searchValue += "," + temp; } } } return(searchValue); } catch (Exception generalException) { this.logger.Error("GetVoiceSearchValue : Error occurred while reading Search Values : " + generalException.ToString()); } return(null); }