private void AddAgentSkills(IEnumerable <Skill> skills, Agent agent)
        {
            List <AgentSkill> agentSkills = new List <AgentSkill>();

            foreach (Skill skill in skills)
            {
                agentSkills.Add(new AgentSkill {
                    Skill = skill, Agent = agent
                });
            }

            agentSkillManager.AddRange(agentSkills);
        }
Esempio n. 2
0
        private void UpdateAgentSkills(List <int> newSkills, List <AgentSkill> agentSkillsInDb)
        {
            List <AgentSkill> newAgentAskills = new List <AgentSkill>();

            if (agentSkillsInDb.Count() <= newSkills.Count())
            {
                for (int i = 0; i < agentSkillsInDb.Count(); i++)
                {
                    agentSkillsInDb[i].SkillId = newSkills[0];
                    newSkills.Remove(newSkills[0]);
                }
                if (newSkills.Count() > 0)
                {
                    for (int i = 0; i < newSkills.Count(); i++)
                    {
                        newAgentAskills.Add(new AgentSkill {
                            AgentId = agentSkillsInDb.First().AgentId, SkillId = newSkills[i]
                        });
                    }

                    agentSkillManager.AddRange(newAgentAskills);
                }
            }
            else
            {
                for (int i = 0; i < newSkills.Count(); i++)
                {
                    if (!agentSkillsInDb.Select(s => s.SkillId).Contains(newSkills[i]))
                    {
                        agentSkillsInDb[i].SkillId = newSkills[i];
                    }
                }
                newAgentAskills.AddRange(agentSkillsInDb.Where(s => !newSkills.Contains(s.SkillId)));
                agentSkillManager.RemoveRange(newAgentAskills);
            }
        }