示例#1
0
        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);
            }
        }
示例#2
0
        private ScreenPopConfigModel()
        {
            _screenConfigProvider     = new ScreenPopProvider(Global.Context);
            this.Profiles             = new List <NameValueViewModel>();
            this.DefaultSearchOptions = new List <ScreenPopOptions>();

            DefaultSearchOptions.Add(new ScreenPopOptions()
            {
                Name = "TranPop", Pop_Label = "Pop on Transfer and Conference? (Y/N/D)", Description = "Y", Type = 0
            });
            DefaultSearchOptions.Add(new ScreenPopOptions()
            {
                Name = "ANIPop", Pop_Label = "Pop on ANI?", Description = "Y", Type = 0
            });
            DefaultSearchOptions.Add(new ScreenPopOptions()
            {
                Name = "DNIS", Pop_Label = "DNIS", Description = "", Type = 0
            });
            DefaultSearchOptions.Add(new ScreenPopOptions()
            {
                Name = "UUI1", Pop_Label = "UUI Chat", Description = "", Type = 0
            });
            DefaultSearchOptions.Add(new ScreenPopOptions()
            {
                Name = "UUI2", Pop_Label = "UUI Incident", Description = "", Type = 0
            });
            DefaultSearchOptions.Add(new ScreenPopOptions()
            {
                Name = "UUI3", Pop_Label = "UUI 3", Description = "", Type = 0
            });
            DefaultSearchOptions.Add(new ScreenPopOptions()
            {
                Name = "UUI4", Pop_Label = "UUI 4", Description = "", Type = 0
            });
            DefaultSearchOptions.Add(new ScreenPopOptions()
            {
                Name = "UUI5", Pop_Label = "UUI 5", Description = "", Type = 0
            });
            DefaultSearchOptions.Add(new ScreenPopOptions()
            {
                Name = "UUI6", Pop_Label = "UUI 6", Description = "", Type = 0
            });
            DefaultSearchOptions.Add(new ScreenPopOptions()
            {
                Name = "UUI7", Pop_Label = "UUI 7", Description = "", Type = 0
            });
            DefaultSearchOptions.Add(new ScreenPopOptions()
            {
                Name = "UUIStart", Pop_Label = "UUI Start", Description = ";", Type = 0
            });
            DefaultSearchOptions.Add(new ScreenPopOptions()
            {
                Name = "UUIStop", Pop_Label = "UUI Stop", Description = ":", Type = 0
            });
            DefaultSearchOptions.Add(new ScreenPopOptions()
            {
                Name = "UUISep", Pop_Label = "UUI Separator", Description = "!", Type = 0
            });

            // Default AgentStates
            DefaultAgentStates.Add(new AgentState()
            {
                ID = -1, DefaultName = "Available", Name = "Available", Description = "Available to receive interactions"
            });
            DefaultAgentStates.Add(new AgentState()
            {
                ID = -2, DefaultName = "Wrap Up", Name = "Wrap up", Description = "Wrap up work mode"
            });
            DefaultAgentStates.Add(new AgentState()
            {
                ID = -3, DefaultName = "Logged Out", Name = "Logged out", Description = "Logged out of the phone"
            });
            DefaultAgentStates.Add(new AgentState()
            {
                ID = -4, DefaultName = "Logged In", Name = "Logged in", Description = "Logged into the phone"
            });
            DefaultAgentStates.Add(new AgentState()
            {
                ID = -5, DefaultName = "Handling Interaction", Name = "Handling interaction", Description = "Currently handling an interaction"
            });
            DefaultAgentStates.Add(new AgentState()
            {
                ID = -6, DefaultName = "Not Ready", Name = "Not Ready", Description = "Not Ready"
            });
            DefaultAgentStates.Add(new AgentState()
            {
                ID = -7, DefaultName = "New Reason", Name = "New Reason", Description = "New Reason for Not Ready"
            });
            DefaultAgentStates.Add(new AgentState()
            {
                ID = -8, DefaultName = "Buttons", Name = "false", Description = ""
            });
        }