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); }
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); } }