public void NotifyAgentLogin(bool isLogedin, int?proxyId = null) { Application.Current.Dispatcher.BeginInvoke((Action)(delegate { try { if (proxyId != null) { WorkbinUtility.Instance().IxnProxyID = (int)proxyId; } //WorkbinUtility.Instance().IsAgentLoginIXN = isLogedin; if (!isLogedin) { return; } ApplicationDetails.ApplicationDetails.LoadWorkbin(); if (WorkbinService.InteractionServerLoginNotification != null) { WorkbinService.InteractionServerLoginNotification.Invoke(); } } catch (Exception ex) { logger.Error("Error occurred as " + ex.Message); } }), DispatcherPriority.ContextIdle, new object[0]); }
public void UpdateSelectedWorkbin() { try { if (ConfigContainer.Instance().AllKeys.Contains("CfgPerson")) { CfgPerson person = ConfigContainer.Instance().GetValue("CfgPerson") as CfgPerson; if (!person.UserProperties.ContainsKey("agent.ixn.desktop")) { person.UserProperties.Add("agent.ixn.desktop", new KeyValueCollection()); } KeyValueCollection option = person.UserProperties["agent.ixn.desktop"] as KeyValueCollection; if (!string.IsNullOrEmpty(WorkbinUtility.Instance().SelectedWorkbinName)) { if (!option.ContainsKey("workbins.workbin-selected")) { option.Add("workbins.workbin-selected", WorkbinUtility.Instance().SelectedWorkbinName); } else { option["workbins.workbin-selected"] = WorkbinUtility.Instance().SelectedWorkbinName; } } person.UserProperties["agent.ixn.desktop"] = option; person.Save(); person = null; } } catch (Exception ex) { logger.Error("Error when updating selected workbin " + ex.ToString()); } }
public void NotifyContactServerState(bool isOpen = false) { Application.Current.Dispatcher.BeginInvoke((Action)(delegate { WorkbinUtility.Instance().IsContactServerActive = isOpen; if (WorkbinService.ContactServerNotificationHandler != null) { WorkbinService.ContactServerNotificationHandler.Invoke(); } }), DispatcherPriority.ContextIdle, new object[0]); }
public void InitializeWorkBin(string placeId, int proxyId, IPluginCallBack listener) { try { logger.Info("**********************************************************************************************************************"); logger.Info("Pointel.Interaction.Workbin :" + Assembly.GetExecutingAssembly().GetName().Version); logger.Info("***********************************************************************************************************************"); logger.Info("Retrieving Values from Application Email in AID Start"); WorkbinUtility.Instance().PlaceID = placeId; WorkbinUtility.Instance().IxnProxyID = proxyId; WorkbinUtility.Instance().configListener = listener; WorkbinUtility.Instance().messageToClientEmail = listener; Pointel.Interaction.Workbin.ApplicationDetails.ApplicationDetails.LoadWorkbin(); InteractionService.InteractionServerNotifier += InteractionService_InteractionServerNotifier; } catch (Exception exception) { logger.Error("StartEmailService" + exception.ToString()); } }
/// <summary> /// The Will Retrieve the Pperson Id of which group the login agent is superadmin. /// If the User is Agent Means it will not Performed. /// </summary> public static List <string> GetMyTeamAgentId() { List <string> empId = new List <string>(); CfgAgentGroupQuery agentGroupQuery = new CfgAgentGroupQuery(); agentGroupQuery.TenantDbid = ConfigContainer.Instance().TenantDbId; ICollection <CfgAgentGroup> agentGroups = ConfigContainer.Instance().ConfServiceObject.RetrieveMultipleObjects <CfgAgentGroup>(agentGroupQuery); if (agentGroups != null && agentGroups.Count > 0) { //this is added by sakthikumar to determine the age is admin or not. WorkbinUtility.Instance().AgentGroup = agentGroups.Where(x => x != null && x.GroupInfo != null && x.GroupInfo.Managers != null && x.GroupInfo.Managers.Where(y => y.EmployeeID.Equals(ConfigContainer.Instance().AgentId)).ToList().Count > 0).ToList(); WorkbinUtility.Instance().IsSuperadmin = WorkbinUtility.Instance().AgentGroup.Count > 0; foreach (CfgAgentGroup agentgroup in WorkbinUtility.Instance().AgentGroup) { foreach (CfgPerson person in agentgroup.Agents) { empId.Add(person.EmployeeID); } } } return(empId); }
/// <summary> /// Workbins the flag. /// </summary> /// <param name="isEnableWorkbin">if set to <c>true</c> [is enable workbin].</param> public void WorkbinFlag(bool isEnableWorkbin) { WorkbinUtility.Instance().IsWorkbinEnable = isEnableWorkbin; }
public bool NotifyEmailOpen(string interactionId) { try { KeyValueCollection kvpInteractionId = new KeyValueCollection(); kvpInteractionId.Add("id", interactionId); InteractionService interactionServices = new InteractionService(); Pointel.Interactions.Core.Common.OutputValues result = interactionServices.PullInteraction(ConfigContainer.Instance().TenantDbId, WorkbinUtility.Instance().IxnProxyID, kvpInteractionId); if (result.MessageCode.Equals("200")) { if (Pointel.Interactions.IPlugins.PluginCollection.GetInstance().PluginCollections.ContainsKey(Pointel.Interactions.IPlugins.Plugins.Email)) { ((IEmailPlugin)Pointel.Interactions.IPlugins.PluginCollection.GetInstance().PluginCollections[Pointel.Interactions.IPlugins.Plugins.Email]).NotifyEmailInteraction(result.IMessage); return(true); } } } catch (Exception ex) { logger.Error("Error occurred as " + ex.Message); } return(false); }
public List <string> GetTeamWorkbinList() { return(new List <string>(WorkbinUtility.Instance().TeamWorkbinList.Keys)); }
public List <string> GetPersonalWorkbinList() { return(new List <string>(WorkbinUtility.Instance().PersonalWorkbinList.Keys)); }
/// <summary> /// The method will used to Read the Workbin name of the Agent and Team Workbin /// </summary> public static void LoadWorkbin() { Pointel.Logger.Core.ILog logger = Pointel.Logger.Core.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType, "AID"); try { //Added by sakthi to load workbins. List <string> interactionWorkbin = WorkbinConverter.GetWorkbinList(); WorkbinUtility.Instance().TeamWorkbinList.Clear(); WorkbinUtility.Instance().PersonalWorkbinList.Clear(); if (interactionWorkbin != null && interactionWorkbin.Count > 0) { string[] listofKeys = ConfigContainer.Instance().AllKeys.Where(x => x.ToLower().StartsWith("workbin.") && x.ToCharArray().Where(y => y.Equals('.')).ToList().Count == 2 && !x.Contains("..")).ToArray <string>(); foreach (string keys in listofKeys) { string workbinName = ConfigContainer.Instance().GetValue(keys); if (interactionWorkbin.Where(x => x.Equals(workbinName)).ToList().Count > 0 && !WorkbinUtility.Instance().PersonalWorkbinList.ContainsKey(workbinName)) { WorkbinUtility.Instance().PersonalWorkbinList.Add(workbinName, "From,To,Subject,Received"); if (ConfigContainer.Instance().AllKeys.Contains(keys + ".displayed-columns") && !string.IsNullOrEmpty(((string)ConfigContainer.Instance().GetValue(keys + ".displayed-columns")))) { WorkbinUtility.Instance().PersonalWorkbinList[workbinName] = (string)ConfigContainer.Instance().GetValue(keys + ".displayed-columns"); } //workbin.email.in-progress else if (ConfigContainer.Instance().AllKeys.Contains("workbin.email.in-progress") && string.Compare((string)ConfigContainer.Instance().GetValue("workbin.email.in-progress"), workbinName) == 0) { WorkbinUtility.Instance().PersonalWorkbinList[workbinName] = "From,Subject,Received"; } else if (ConfigContainer.Instance().AllKeys.Contains("workbin.email.draft") && string.Compare((string)ConfigContainer.Instance().GetValue("workbin.email.draft"), workbinName) == 0) { WorkbinUtility.Instance().PersonalWorkbinList[workbinName] = "To,Subject,Submitted"; } } } string key = "workbin.teamworkbin"; if (ConfigContainer.Instance().AllKeys.Contains(key) && !string.IsNullOrEmpty(ConfigContainer.Instance().GetValue(key))) { foreach (string workbinName in ConfigContainer.Instance().GetValue(key).Split(',')) { if (interactionWorkbin.Where(x => x.Equals(workbinName)).ToList().Count > 0) { WorkbinUtility.Instance().TeamWorkbinList.Add(workbinName, "From,To,Subject,Received"); } if (ConfigContainer.Instance().AllKeys.Contains(key + ".displayed-columns") && !string.IsNullOrEmpty(((string)ConfigContainer.Instance().GetValue(key + ".displayed-columns")))) { WorkbinUtility.Instance().PersonalWorkbinList[workbinName] = (string)ConfigContainer.Instance().GetValue(key + ".displayed-columns"); } //workbin.email.in-progress else if (ConfigContainer.Instance().AllKeys.Contains("workbin.email.in-progress") && string.Compare((string)ConfigContainer.Instance().GetValue("workbin.email.in-progress"), workbinName) == 0) { WorkbinUtility.Instance().TeamWorkbinList[workbinName] = "From,Subject,Received"; } else if (ConfigContainer.Instance().AllKeys.Contains("workbin.email.draft") && string.Compare((string)ConfigContainer.Instance().GetValue("workbin.email.draft"), workbinName) == 0) { WorkbinUtility.Instance().TeamWorkbinList[workbinName] = "To,Subject,Submitted"; } } } else if (ConfigContainer.Instance().AllKeys.Contains("workbin.email.in-progress")) { WorkbinUtility.Instance().TeamWorkbinList.Add((string)ConfigContainer.Instance().GetValue("workbin.email.in-progress"), "From,Subject,Received"); if (ConfigContainer.Instance().AllKeys.Contains("workbin.email.in-progress.displayed-columns") && !string.IsNullOrEmpty(((string)ConfigContainer.Instance().GetValue("workbin.email.in-progress.displayed-columns")))) { WorkbinUtility.Instance().PersonalWorkbinList[(string)ConfigContainer.Instance().GetValue("workbin.email.in-progress")] = (string)ConfigContainer.Instance().GetValue("workbin.email.in-progress.displayed-columns"); } } WorkbinUtility.Instance().IsAgentLoginIXN = true; } else { string[] listofKeys = ConfigContainer.Instance().AllKeys.Where(x => x.ToLower().StartsWith("workbin.") && x.ToCharArray().Where(y => y.Equals('.')).ToList().Count == 2 && !x.Contains("..")).ToArray <string>(); WorkbinUtility.Instance().Workbins = new Dictionary <string, string>(); foreach (string keys in listofKeys) { string workbinName = ConfigContainer.Instance().GetValue(keys); WorkbinUtility.Instance().Workbins.Add(keys, workbinName); } WorkbinUtility.Instance().IsAgentLoginIXN = false; } } catch (Exception ex) { logger.Error("Error occurred as " + ex.Message); } }