public List <ScreenPopOptions> GetReasonByCode(int profileID, ReasonCodes reasoncode) { ScreenPopConfig wrapupreason = GetScreenConfigByProfileId(profileID); List <ScreenPopOptions> opts = new List <ScreenPopOptions>(); if (wrapupreason.ScreenPopOptionsList != null) { switch (reasoncode) { case ReasonCodes.AUXReason: if (wrapupreason.AUXReasonEnabled) { opts = wrapupreason.ScreenPopOptionsList.Where(reason => reason.Type == (int)reasoncode).ToList(); } break; case ReasonCodes.LogoutReason: if (wrapupreason.LogoutReasonEnabled) { opts = wrapupreason.ScreenPopOptionsList.Where(reason => reason.Type == (int)reasoncode).ToList(); } break; case ReasonCodes.WrapupReason: if (wrapupreason.WrapupReasonEnabled) { opts = wrapupreason.ScreenPopOptionsList.Where(reason => reason.Type == (int)reasoncode).ToList(); } break; } } return(opts); }
public ScreenPopConfig GetScreenConfigByProfileId(int profileid) { ScreenPopConfig list = GetScreenConfigByProfile(profileid); if (list != null) { list.ScreenPopOptionsList = new List <ScreenPopOptions>(GetObjects <ScreenPopOptions>(string.Format("where ScreenPopConfigID={0}", list.ID))).ToList(); } else { list = new ScreenPopConfig(); list.CanScreenPop = false; list.DefaultWorkSpace = ""; list.ChatDefaultWorkspace = ""; list.IncidentDefaultWorkspace = ""; list.ProfileId = profileid; list.IsDefault = true; list.ScreenPopOptionsList = null; list.AutoRecieve = false; list.VoiceScreenPop = false; list.ChatScreenPop = false; list.IncidentScreenPop = false; } return(list); }
public void SaveAgentConfigData(ScreenPopConfig screenPopConfigData) { try { Logger.Logger.Log.Debug(string.Format("ScreenPopProviders: {0}", screenPopConfigData)); if (screenPopConfigData.ProfileId == 0 || (screenPopConfigData.ProfileId > 0 && !screenPopConfigData.IsDefault)) { ScreenPopConfig screenPopConfiguration = _rightNowObjectProvider.GetObject <ScreenPopConfig>(string.Format("where ProfileID={0}", screenPopConfigData.ProfileId)); CreateResponse createResponse = null; UpdateResponse updateResponse = null; long screenPopConfigId = 0; if (screenPopConfiguration == null) { createResponse = _rightNowObjectProvider.CreateObject <ScreenPopConfig>(screenPopConfigData); RNObject[] results = createResponse.RNObjectsResult; if (results.Count() > 0) { screenPopConfigId = results[0].ID.id; } } else { updateResponse = _rightNowObjectProvider.UpdateObject <ScreenPopConfig>(screenPopConfigData, screenPopConfiguration.ID); screenPopConfigId = screenPopConfiguration.ID; } if (screenPopConfigId > 0) { this.Destroy(screenPopConfigId, false); //foreach (ScreenPopOptions config in screenPopConfigData.ScreenPopOptionsList) //{ // config.ScreenPopConfigID = screenPopConfigId; // CreateResponse entityCreateResponse = _rightNowObjectProvider.CreateObject<ScreenPopOptions>(config); // RNObject[] rnObject = entityCreateResponse.RNObjectsResult; //} screenPopConfigData.ScreenPopOptionsList.ForEach(x => x.ScreenPopConfigID = screenPopConfigId); CreateResponse entityCreateResponse = _rightNowObjectProvider.CreateObjects <ScreenPopOptions>(screenPopConfigData.ScreenPopOptionsList); } } else if (screenPopConfigData.ProfileId > 0 && screenPopConfigData.IsDefault) { ScreenPopConfig profile = _rightNowObjectProvider.GetObject <ScreenPopConfig>(string.Format("where ProfileID={0}", screenPopConfigData.ProfileId)); if (profile != null) { this.Destroy(profile.ID); } } Logger.Logger.Log.Info(string.Format("ScreenPopProviders successfully Saved: {0}", screenPopConfigData)); } catch (Exception ex) { Logger.Logger.Log.Error("Saving Screen Pop Settings :" + ex.StackTrace); Logger.Logger.Log.Error("Saving Screen Pop Settings", ex); } }
public void SaveAgentConfiguration(ScreenPopConfig screenPoptConfig) { Logger.Logger.Log.Debug("AgentConfigModel >>> save-agent-configuration."); try { _screenConfigProvider.SaveAgentConfigData(screenPoptConfig); } catch (Exception ex) { Logger.Logger.Log.Error("ScreenPopConfigModel >>> save-agent-configuration failed.", ex); } }
public ScreenPopConfig GetAgentScreenByProfile() { ScreenPopConfig conf = null; try { Logger.Logger.Log.Debug("RightNowConnectConfigurationProvider Getting ScreenPop "); conf = _objectProvider.GetScreenConfigByProfileId(Global.Context.ProfileId); if (conf.ScreenPopOptionsList == null) { conf = _objectProvider.GetScreenConfigByProfileId(0); } Logger.Logger.Log.DebugFormat("ScreenPopConfigModel <<< get-agent-configuration-by-profile."); if (conf.ScreenPopOptionsList != null && conf.ScreenPopOptionsList.Where(p => p.Type == 0).GroupBy(p => new { p.Type, p.Name }).Count() != conf.ScreenPopOptionsList.Where(p => p.Type == 0).Count()) { List <ScreenPopOptions> tempdefault = new List <ScreenPopOptions>(); foreach (ScreenPopOptions pop in conf.ScreenPopOptionsList.Where(p => p.Type == 0)) { ScreenPopOptions val = conf.ScreenPopOptionsList.FirstOrDefault(item => item.Type == 0 && item.Name == pop.Name); if (val == null) { tempdefault.Add(pop); } else if (!tempdefault.Contains(val)) { tempdefault.Add(val); } } conf.ScreenPopOptionsList.RemoveAll(rem => rem.Type == 0); tempdefault.ForEach((vap) => conf.ScreenPopOptionsList.Add(vap)); } if (conf.ScreenPopOptionsList != null && conf.ScreenPopOptionsList.Where(p => p.Type == 1).GroupBy(p => new { p.Type, p.Name }).Count() != conf.ScreenPopOptionsList.Where(p => p.Type == 1).Count()) { List <ScreenPopOptions> tempdefault = new List <ScreenPopOptions>(); foreach (ScreenPopOptions pop in conf.ScreenPopOptionsList.Where(item => item.Type == 1)) { ScreenPopOptions val = conf.ScreenPopOptionsList.FirstOrDefault(item => item.Type == 1 && item.Name == pop.Name); if (val == null) { tempdefault.Add(pop); } else if (!tempdefault.Contains(val)) { tempdefault.Add(val); } } conf.ScreenPopOptionsList.RemoveAll(rem => rem.Type == 1); tempdefault.ForEach((vap) => conf.ScreenPopOptionsList.Add(vap)); } if (conf.ScreenPopOptionsList != null && conf.ScreenPopOptionsList.Where(p => p.Type == 2).GroupBy(p => new { p.Type, p.Name }).Count() != conf.ScreenPopOptionsList.Where(p => p.Type == 2).Count()) { List <ScreenPopOptions> tempdefault = new List <ScreenPopOptions>(); foreach (ScreenPopOptions pop in conf.ScreenPopOptionsList.Where(p => p.Type == 2)) { ScreenPopOptions val = conf.ScreenPopOptionsList.FirstOrDefault(item => item.Type == 2 && item.Name == pop.Name); if (val == null) { tempdefault.Add(pop); } else if (!tempdefault.Contains(val)) { tempdefault.Add(val); } } conf.ScreenPopOptionsList.RemoveAll(rem => rem.Type == 2); tempdefault.ForEach((vap) => conf.ScreenPopOptionsList.Add(vap)); } if (conf.ScreenPopOptionsList != null && conf.ScreenPopOptionsList.Where(p => p.Type == 3).GroupBy(p => new { p.Type, p.Name }).Count() != conf.ScreenPopOptionsList.Where(p => p.Type == 3).Count()) { List <ScreenPopOptions> tempdefault = new List <ScreenPopOptions>(); foreach (ScreenPopOptions pop in conf.ScreenPopOptionsList.Where(p => p.Type == 3)) { ScreenPopOptions val = conf.ScreenPopOptionsList.FirstOrDefault(item => item.Type == 3 && item.Name == pop.Name); if (val == null) { tempdefault.Add(pop); } else if (!tempdefault.Contains(val)) { tempdefault.Add(val); } } conf.ScreenPopOptionsList.RemoveAll(rem => rem.Type == 3); tempdefault.ForEach((vap) => conf.ScreenPopOptionsList.Add(vap)); } } catch (Exception ex) { Logger.Logger.Log.Error(ex); return(conf); } finally { } return(conf); }
private void ExecuteSaveScreentSettings(object obj) { ProgressInfo = "Saving " + SelectedProfile.Name + "..."; ShowAll = Visibility.Collapsed; ShowConfigAll = Visibility.Collapsed; ShowProgress = Visibility.Visible; System.Threading.Tasks.Task.Factory.StartNew(() => { screenpopConfigs = new ScreenPopConfig(); screenpopConfigs.AUXReasonEnabled = this.IsAUXReason; screenpopConfigs.CanScreenPop = this.CanScreenPop; screenpopConfigs.AutoRecieve = this.AutoRecieve; screenpopConfigs.VoiceScreenPop = this.VoiceScreenPop; screenpopConfigs.ChatScreenPop = this.ChatScreenPop; screenpopConfigs.IncidentScreenPop = this.IncidentScreenPop; screenpopConfigs.WrapupReasonEnabled = this.IsWrapup; screenpopConfigs.DefaultWorkSpace = SelectedWorkSpaceList; screenpopConfigs.IsEnhanced = this.Enhanced; screenpopConfigs.ChatDefaultWorkspace = SelectedChatWorkSpaceList; screenpopConfigs.IncidentDefaultWorkspace = SelectedIncidentWorkSpaceList; screenpopConfigs.CanOpen = IsDontOpen; screenpopConfigs.CanOpenChat = IsDontOpenChat; screenpopConfigs.CanOpenIncident = IsDontOpenIncident; screenpopConfigs.IsDefault = this.IsDefaultConfig; screenpopConfigs.LogoutReasonEnabled = this.IsLogout; screenpopConfigs.ProfileId = (int)SelectedProfile.Value; screenpopConfigs.PrimaryCTIEngine = (string.IsNullOrEmpty(PrimaryCTIEngine) ? " " : PrimaryCTIEngine); screenpopConfigs.SecondaryCTIEngine = (string.IsNullOrEmpty(SecondaryCTIEngine) ? " " : SecondaryCTIEngine); screenpopConfigs.IsQueueEnabled = this.IsQueueEnabled; screenpopConfigs.ScreenPopOptionsList = new List <ScreenPopOptions>(); SearchPopOptions.ToList().ForEach(p => { screenpopConfigs.ScreenPopOptionsList.Add(new ScreenPopOptions() { Name = p.Name, Pop_Label = p.Pop_Label, Type = p.Type, Description = p.Description }); }); WrapupReasoncodes.ToList().ForEach(p => { screenpopConfigs.ScreenPopOptionsList.Add(new ScreenPopOptions() { Name = p.Name, Pop_Label = p.Pop_Label, Type = p.Type, Description = p.Description }); }); LogoutReasonCodes.ToList().ForEach(p => { screenpopConfigs.ScreenPopOptionsList.Add(new ScreenPopOptions() { Name = p.Name, Pop_Label = p.Pop_Label, Type = p.Type, Description = p.Description }); }); AUXReasonCodes.ToList().ForEach(p => { screenpopConfigs.ScreenPopOptionsList.Add(new ScreenPopOptions() { Name = p.Name, Pop_Label = p.Pop_Label, Type = p.Type, Description = p.Description }); }); ScreenPopConfigModel.Instance.SaveAgentConfiguration(screenpopConfigs); BindData(); }).ContinueWith((s) => { ShowConfigAll = Visibility.Visible; ShowProgress = Visibility.Collapsed; ShowAll = Visibility.Visible; }); }
private void BindData() { try { this.SearchPopOptions.Clear(); this.LogoutReasonCodes.Clear(); this.AUXReasonCodes.Clear(); this.WrapupReasoncodes.Clear(); this.Wrapup = ""; this.LogoutReason = ""; this.NotReadyReason = ""; screenpopConfigs = ScreenPopConfigModel.Instance.GetAgentConfigurationByProfile(Int32.Parse(SelectedProfile.Value.ToString())); this.CanScreenPop = screenpopConfigs.CanScreenPop; this.AutoRecieve = screenpopConfigs.AutoRecieve; this.VoiceScreenPop = screenpopConfigs.VoiceScreenPop; this.ChatScreenPop = screenpopConfigs.ChatScreenPop; this.IncidentScreenPop = screenpopConfigs.IncidentScreenPop; this.IsDefaultConfig = screenpopConfigs.IsDefault; this.IsDontOpen = screenpopConfigs.CanOpen; this.IsDontOpenIncident = screenpopConfigs.CanOpenIncident; this.IsDontOpenChat = screenpopConfigs.CanOpenChat; this.IsWrapup = screenpopConfigs.WrapupReasonEnabled; this.IsLogout = screenpopConfigs.LogoutReasonEnabled; this.IsAUXReason = screenpopConfigs.AUXReasonEnabled; this.PrimaryCTIEngine = screenpopConfigs.PrimaryCTIEngine; this.SecondaryCTIEngine = screenpopConfigs.SecondaryCTIEngine; this.IsQueueEnabled = screenpopConfigs.IsQueueEnabled; this.AutoRecieve = screenpopConfigs.AutoRecieve; this.Enhanced = screenpopConfigs.IsEnhanced; if (!IsDontOpen) { SelectedWorkSpaceList = WorkSpaceList.FirstOrDefault(p => p.ToString() == screenpopConfigs.DefaultWorkSpace); } if (!IsDontOpenChat) { SelectedChatWorkSpaceList = WorkSpaceList.FirstOrDefault(p => p.ToString() == screenpopConfigs.ChatDefaultWorkspace); } if (!IsDontOpenIncident) { SelectedIncidentWorkSpaceList = WorkSpaceList.FirstOrDefault(p => p.ToString() == screenpopConfigs.IncidentDefaultWorkspace); } if (screenpopConfigs.ScreenPopOptionsList != null) { foreach (ScreenPopOptions opt in screenpopConfigs.ScreenPopOptionsList.Where(opt => opt.Type == (int)ScreenOptions.ScreenSearch)) { SearchPopOptions.Add(new ScreenPopUpEntity() { ID = opt.ID, Pop_Label = opt.Pop_Label, Type = opt.Type, Description = opt.Description, Name = opt.Name }); } foreach (ScreenPopOptions opt in screenpopConfigs.ScreenPopOptionsList.Where(opt => opt.Type == (int)ScreenOptions.WrapupReasonCodes)) { WrapupReasoncodes.Add(new ScreenPopUpEntity() { ID = opt.ID, Pop_Label = opt.Pop_Label, Type = opt.Type, Description = opt.Description, Name = opt.Name }); } foreach (ScreenPopOptions opt in screenpopConfigs.ScreenPopOptionsList.Where(opt => opt.Type == (int)ScreenOptions.LogoutReasonCodes)) { LogoutReasonCodes.Add(new ScreenPopUpEntity() { ID = opt.ID, Pop_Label = opt.Pop_Label, Type = opt.Type, Description = opt.Description, Name = opt.Name }); } foreach (ScreenPopOptions opt in screenpopConfigs.ScreenPopOptionsList.Where(opt => opt.Type == (int)ScreenOptions.AUXReasonCodes)) { AUXReasonCodes.Add(new ScreenPopUpEntity() { ID = opt.ID, Pop_Label = opt.Pop_Label, Type = opt.Type, Description = opt.Description, Name = opt.Name }); } } SetReasonCodeLabel(); } catch (Exception ex) { Logger.Logger.Log.Error("ScreenpopConfigurationViewModel: ", ex); } }
/// <summary> /// Handle the Screen Pop to the user. /// </summary> /// <param name="interaction"></param> public void HandleInteraction(IInteraction interaction) { Boolean isChat, isIncident, isVoice = false; switch (interaction.Type) { case MediaType.Voice: SynchronizationContext.Current.Post(scree => { try { AsyncObservableCollection <Entities> UUIs = new AsyncObservableCollection <Entities>(); ScreenPopConfig screenPopConfigs = interaction.ScreenPopConfiguration; if (screenPopConfigs.CanScreenPop) { string UUIvalue = interaction.InteractionData["UUI"]; ScreenPopOptions UUIstart = screenPopConfigs.ScreenPopOptionsList.SingleOrDefault(p => p.Type == 0 && p.Name.Equals("UUIStart", StringComparison.OrdinalIgnoreCase)); string start = UUIstart == null ? ";" : UUIstart.Description; ScreenPopOptions UUIstop = screenPopConfigs.ScreenPopOptionsList.SingleOrDefault(p => p.Type == 0 && p.Name.Equals("UUIStop", StringComparison.OrdinalIgnoreCase)); string stop = UUIstop == null ? ":" : UUIstop.Description; ScreenPopOptions UUIsep = screenPopConfigs.ScreenPopOptionsList.SingleOrDefault(p => p.Type == 0 && p.Name.Equals("UUISep", StringComparison.OrdinalIgnoreCase)); char seperator = UUIsep == null ? '!' : UUIsep.Description.ToCharArray()[0]; int startindex = UUIvalue.IndexOf(start, 0) + 1; int lastindex = UUIvalue.LastIndexOf(stop) == -1 ? UUIvalue.Length : UUIvalue.LastIndexOf(stop); int len = lastindex - startindex; string[] uuival = UUIvalue.Substring(startindex, len).Split(seperator); isChat = Array.IndexOf(uuival, InteractionIQAType.FEAT_IQA_ORACLE_CHAT.ToString()) >= 0; isIncident = Array.IndexOf(uuival, InteractionIQAType.FEAT_IQA_ORACLE_EMAIL.ToString()) >= 0; ArrayList uuiCI = new ArrayList(); //Namachi Regex UUICIRegex = new Regex("^UUI[1-2]", RegexOptions.IgnoreCase); List <ScreenPopOptions> UUICI = screenPopConfigs.ScreenPopOptionsList.Where(p => p.Type == 0 && UUICIRegex.Matches(p.Name).Count > 0).ToList(); Regex UUIRegex = new Regex("^UUI[3-7]", RegexOptions.IgnoreCase); List <ScreenPopOptions> UUI = screenPopConfigs.ScreenPopOptionsList.Where(p => p.Type == 0 && UUIRegex.Matches(p.Name).Count > 0).ToList(); //foreach (string filterval in uuival) { // if (filterval != UUICI[0].Description && filterval != UUICI[1].Description) uuiCI.Add(filterval); //} for (int i = 0; i < uuival.Length; i++) { if (i == 0 || i == 1) { if ((uuival[i] != UUICI[0].Description && uuival[i] != UUICI[1].Description) && (uuival[i] != null && uuival[i] != "")) { uuiCI.Add(uuival[i]); } } else if (uuival[i] != UUICI[0].Description && uuival[i] != UUICI[1].Description) { uuiCI.Add(uuival[i]); } } int index = 1; bool IsMatched = false; string searchvalue = ""; if ((interaction as ICall).CallType == CallType.Inbound) { searchvalue = interaction.Address; } else { string[] address = interaction.InteractionData["Consult"].Split('|'); searchvalue = address[0]; } AsyncObservableCollection <Entities> consolidatefilter = CombineEntity((string[])uuiCI.ToArray(typeof(string)), UUI, searchvalue); foreach (Entities filter in consolidatefilter) { string workspace = filter.Entity; bool found = false; Entities searchval = SearchEntites(filter); if (searchval.IDs.Count > 0) { Entities dup = UUIs.FirstOrDefault(p => p.Entity.Equals(searchval.Entity, StringComparison.OrdinalIgnoreCase)); if (dup != null) { searchval.IDs.ToList().ForEach(x => dup.IDs.Add(x.ToString())); } else { UUIs.Add(searchval); } found = true; } if (!IsMatched && found) { IsMatched = found; } } Open(UUIs); UUIs.Clear(); if ((interaction as ICall).CallType == CallType.Inbound) { ScreenPopOptions aniscreenpop = screenPopConfigs.ScreenPopOptionsList.SingleOrDefault(p => p.Type == 0 && p.Name.Equals("ANIPop", StringComparison.OrdinalIgnoreCase)); if (!IsMatched && aniscreenpop != null && aniscreenpop.Description == "Y") { bool found = false; // SearchAndPop("Contact", "Phones.RawNumber", "any_phone", searchvalue); Entities searchval = SearchEntites("Contact", "Phones.RawNumber", SEARCH_EXPRESSION["contact"].ToString(), searchvalue); //Entities searchval = SearchEntites("organization", "orgs.org_id", SEARCH_EXPRESSION["organization"].ToString(), searchvalue); if (searchval.IDs.Count > 0) { Entities dup = UUIs.FirstOrDefault(p => p.Entity.Equals(searchval.Entity, StringComparison.OrdinalIgnoreCase)); if (dup != null) { searchval.IDs.ToList().ForEach(x => dup.IDs.Add(x.ToString())); } else { UUIs.Add(searchval); } found = true; } if (!IsMatched && found) { IsMatched = found; } } //if (!(screenPopConfigs.CanOpen) && !IsMatched && aniscreenpop.Description == "Y") //{ //WorkspaceRecordType recordtype; //if (Enum.TryParse<WorkspaceRecordType>(screenPopConfigs.DefaultWorkSpace, out recordtype)) //{ // IsMatched = true; // RightNowGlobalContext.AutomationContext.CreateWorkspaceRecord(recordtype); //} //} WorkspaceRecordType recordtype; if (screenPopConfigs.ChatScreenPop) { if (isChat && !IsMatched) { if (screenPopConfigs.CanOpenChat == false) { if (Enum.TryParse <WorkspaceRecordType>(screenPopConfigs.ChatDefaultWorkspace, out recordtype)) { IsMatched = true; RightNowGlobalContext.AutomationContext.CreateWorkspaceRecord(recordtype); } } } } if (screenPopConfigs.IncidentScreenPop) { if (isIncident && !IsMatched) { if (screenPopConfigs.CanOpenIncident == false) { if (Enum.TryParse <WorkspaceRecordType>(screenPopConfigs.IncidentDefaultWorkspace, out recordtype)) { IsMatched = true; RightNowGlobalContext.AutomationContext.CreateWorkspaceRecord(recordtype); } } } } if (screenPopConfigs.VoiceScreenPop) { if (!isIncident && !isChat && !IsMatched) { if (screenPopConfigs.CanOpen == false) { if (Enum.TryParse <WorkspaceRecordType>(screenPopConfigs.DefaultWorkSpace, out recordtype)) { IsMatched = true; RightNowGlobalContext.AutomationContext.CreateWorkspaceRecord(recordtype); } } } } Logger.Logger.Log.Info(string.Format("ScreenPopHandler: Inbound ScreenPop Address {0}", searchvalue)); } else if ((interaction as ICall).CallType == CallType.Consult) { ScreenPopOptions aniscreenpop = screenPopConfigs.ScreenPopOptionsList.SingleOrDefault(p => p.Type == 0 && p.Name.Equals("TranPop", StringComparison.OrdinalIgnoreCase)); if (!IsMatched && aniscreenpop != null && (aniscreenpop.Description == "Y" || aniscreenpop.Description == "D")) { bool found = false; // SearchAndPop("Contact", "Phones.RawNumber", "any_phone", searchvalue); //"organization", "orgs.org_id" Entities searchval = SearchEntites("Contact", "Phones.RawNumber", SEARCH_EXPRESSION["contact"].ToString(), searchvalue); //Entities searchval = SearchEntites("organization", "organization.org_id", SEARCH_EXPRESSION["organization"].ToString(), searchvalue); if (searchval.IDs.Count > 0) { Entities dup = UUIs.FirstOrDefault(p => p.Entity.Equals(searchval.Entity, StringComparison.OrdinalIgnoreCase)); if (dup != null) { searchval.IDs.ToList().ForEach(x => dup.IDs.Add(x.ToString())); } else { UUIs.Add(searchval); } found = true; } if (!IsMatched && found) { IsMatched = found; } } if (!(screenPopConfigs.CanOpen) && !IsMatched && (aniscreenpop.Description == "Y" || aniscreenpop.Description == "D")) { WorkspaceRecordType recordtype; if (Enum.TryParse <WorkspaceRecordType>(screenPopConfigs.DefaultWorkSpace, out recordtype)) { IsMatched = true; RightNowGlobalContext.AutomationContext.CreateWorkspaceRecord(recordtype); } } Logger.Logger.Log.Info(string.Format("ScreenPopHandler: Consult ScreenPop Address {0} UUI = {1}", searchvalue, UUIvalue)); } Open(UUIs); UUIs.Clear(); } } catch (Exception ex) { Logger.Logger.Log.Error("ScreenPopHandler", ex); } }, null); break; case MediaType.Web: case MediaType.Email: RightNowGlobalContext.AutomationContext.EditWorkspaceRecord(WorkspaceRecordType.Incident, long.Parse(interaction.AdditionalIdentifiers["ReferenceId"])); break; default: return; } }
public ScreenPopConfig GetAgentConfigurationByProfile(int profileId) { Logger.Logger.Log.DebugFormat("ScreenPopConfigModel <<< get-agent-configuration-by-profile. ProfileId:{0}", profileId); try { ScreenPopConfig screepop = _screenConfigProvider.GetScreenPopConfigurationByProfile(profileId); if (screepop.ScreenPopOptionsList == null) { screepop.ScreenPopOptionsList = new List <ScreenPopOptions>(DefaultSearchOptions.ToList()); } else if (screepop.ScreenPopOptionsList != null && screepop.ScreenPopOptionsList.Where(p => p.Type == 0).Count() != DefaultSearchOptions.Count()) { List <ScreenPopOptions> tempdefault = new List <ScreenPopOptions>(); foreach (ScreenPopOptions pop in DefaultSearchOptions) { ScreenPopOptions val = screepop.ScreenPopOptionsList.FirstOrDefault(item => item.Type == 0 && item.Name == pop.Name); if (val == null) { tempdefault.Add(pop); } else if (!tempdefault.Contains(val)) { tempdefault.Add(val); } } screepop.ScreenPopOptionsList.RemoveAll(rem => rem.Type == 0); tempdefault.ForEach((vap) => screepop.ScreenPopOptionsList.Add(vap)); } if (screepop.ScreenPopOptionsList != null && screepop.ScreenPopOptionsList.Where(p => p.Type == 1).GroupBy(p => new { p.Type, p.Name }).Count() != screepop.ScreenPopOptionsList.Where(p => p.Type == 1).Count()) { List <ScreenPopOptions> tempdefault = new List <ScreenPopOptions>(); foreach (ScreenPopOptions pop in screepop.ScreenPopOptionsList.Where(item => item.Type == 1)) { ScreenPopOptions val = screepop.ScreenPopOptionsList.FirstOrDefault(item => item.Type == 1 && item.Name == pop.Name); if (val == null) { tempdefault.Add(pop); } else if (!tempdefault.Contains(val)) { tempdefault.Add(val); } } screepop.ScreenPopOptionsList.RemoveAll(rem => rem.Type == 1); tempdefault.ForEach((vap) => screepop.ScreenPopOptionsList.Add(vap)); } if (screepop.ScreenPopOptionsList != null && screepop.ScreenPopOptionsList.Where(p => p.Type == 2).GroupBy(p => new { p.Type, p.Name }).Count() != screepop.ScreenPopOptionsList.Where(p => p.Type == 2).Count()) { List <ScreenPopOptions> tempdefault = new List <ScreenPopOptions>(); foreach (ScreenPopOptions pop in screepop.ScreenPopOptionsList.Where(p => p.Type == 2)) { ScreenPopOptions val = screepop.ScreenPopOptionsList.FirstOrDefault(item => item.Type == 2 && item.Name == pop.Name); if (val == null) { tempdefault.Add(pop); } else if (!tempdefault.Contains(val)) { tempdefault.Add(val); } } screepop.ScreenPopOptionsList.RemoveAll(rem => rem.Type == 2); tempdefault.ForEach((vap) => screepop.ScreenPopOptionsList.Add(vap)); } if (screepop.ScreenPopOptionsList != null && screepop.ScreenPopOptionsList.Where(p => p.Type == 3).GroupBy(p => new { p.Type, p.Name }).Count() != screepop.ScreenPopOptionsList.Where(p => p.Type == 3).Count()) { List <ScreenPopOptions> tempdefault = new List <ScreenPopOptions>(); foreach (ScreenPopOptions pop in screepop.ScreenPopOptionsList.Where(p => p.Type == 3)) { ScreenPopOptions val = screepop.ScreenPopOptionsList.FirstOrDefault(item => item.Type == 3 && item.Name == pop.Name); if (val == null) { tempdefault.Add(pop); } else if (!tempdefault.Contains(val)) { tempdefault.Add(val); } } screepop.ScreenPopOptionsList.RemoveAll(rem => rem.Type == 3); tempdefault.ForEach((vap) => screepop.ScreenPopOptionsList.Add(vap)); } return(screepop); } catch (Exception ex) { Logger.Logger.Log.Error("ScreenPopConfigModel <<< get-agent-configuration failed.", ex); return(null); } }
public static MediaType cIInfoType(IInteraction interaction) { MediaType cInfoState = MediaType.Voice; try { //IInteraction cIInteraction = InteractionProvider.Interactions.FirstOrDefault(p => p.CallId == callIdNode.Value); if (interaction != null) { ScreenPopConfig screenPopConfigs = interaction.ScreenPopConfiguration; if (screenPopConfigs.CanScreenPop) { string UUIValue = interaction.InteractionData["UUI"]; ScreenPopOptions UUIstart = screenPopConfigs.ScreenPopOptionsList.SingleOrDefault(p => p.Type == 0 && p.Name.Equals("UUIStart", StringComparison.OrdinalIgnoreCase)); string start = UUIstart == null ? ";" : UUIstart.Description; ScreenPopOptions UUIstop = screenPopConfigs.ScreenPopOptionsList.SingleOrDefault(p => p.Type == 0 && p.Name.Equals("UUIStop", StringComparison.OrdinalIgnoreCase)); string stop = UUIstop == null ? ":" : UUIstop.Description; ScreenPopOptions UUIsep = screenPopConfigs.ScreenPopOptionsList.SingleOrDefault(p => p.Type == 0 && p.Name.Equals("UUISep", StringComparison.OrdinalIgnoreCase)); char seperator = UUIsep == null ? '!' : UUIsep.Description.ToCharArray()[0]; int startindex = UUIValue.IndexOf(start, 0) + 1; int lastindex = UUIValue.LastIndexOf(stop) == -1 ? UUIValue.Length : UUIValue.LastIndexOf(stop); int len = lastindex - startindex; string[] uui = UUIValue.Substring(startindex, len).Split(seperator); Regex chatIncidentRegex = new Regex("^UUI[1-2]", RegexOptions.IgnoreCase); List <ScreenPopOptions> cINotification = screenPopConfigs.ScreenPopOptionsList.Where(p => p.Type == 0 && chatIncidentRegex.Matches(p.Name).Count > 0).ToList(); try { if (uui.Length > 1) { Logger.Logger.Log.Debug(String.Format("AnswerHangupImage cINotifiction Details: {0} {1}: UUI Details: {2} {3} ", cINotification[0].Description, cINotification[1].Description, uui[0], uui[1])); if ((uui[0] == cINotification[0].Description || uui[1] == cINotification[0].Description) && (cINotification[0].Description != null && cINotification[0].Description != "")) { cInfoState = MediaType.Chat; } else if (uui[0] == cINotification[1].Description || uui[1] == cINotification[1].Description && (cINotification[1].Description != null && cINotification[1].Description != "")) { cInfoState = MediaType.Incident; } } else if (uui.Length == 1) { if (uui[0] == cINotification[0].Description && (cINotification[0].Description != null && cINotification[0].Description != "")) { cInfoState = MediaType.Chat; } else if (uui[0] == cINotification[1].Description && (cINotification[1].Description != null && cINotification[1].Description != "")) { cInfoState = MediaType.Incident; } } } catch (NullReferenceException ex) { Logger.Logger.Log.Error("Interaction null reference." + ex); } } } } catch (Exception ex) { Logger.Logger.Log.Debug("Interaction was null" + ex); } return(cInfoState); }
public ScreenPopConfig GetScreenConfigByProfile(int profileid) { ScreenPopConfig list = GetObject <ScreenPopConfig>(string.Format("where Profileid={0}", profileid)); return(list); }