private void UpdateUserSkills(BllProgrammer balProgrammer) { var dbUserSkills = userSkillRepo.Get(x => x.User.Id == balProgrammer.Id); foreach (var skill in balProgrammer.Skills) { DalUserSkill dalUserSkill = new DalUserSkill { User = (DalProgrammer)balProgrammer.ToDal(), Skill = skill.Key.ToDal(), Level = skill.Value }; if (dbUserSkills.Any(x => x.Skill.Id == skill.Key.Id)) userSkillRepo.Update(dalUserSkill); else userSkillRepo.Create(dalUserSkill); } foreach (var skill in dbUserSkills) { if (!balProgrammer.Skills.Any(x => x.Key.Id == skill.Skill.Id)) { userSkillRepo.Remove(skill); } } }
private static BllUser InitializeBalUserProperties(DalUser user) { BllUser balUser; if (user is DalAdmin) balUser = new BllAdmin(); else if (user is DalProgrammer) { DalProgrammer dalProgrammer = (DalProgrammer)user; Dictionary<BllSkill, int> skillsDict = null; if (dalProgrammer.Skills != null) skillsDict = dalProgrammer.Skills.ToDictionary(k => k.Skill.ToBal(), v => v.Level); balUser = new BllProgrammer() { Name = dalProgrammer.Name, About = dalProgrammer.About, BirthDate = dalProgrammer.BirthDate, Photo = dalProgrammer.Photo, ImageType = dalProgrammer.ImapeType, Skills = skillsDict }; } else if (user is DalManager && ((DalManager)user).Filters != null) balUser = new BllManager { Filters = ((DalManager)user).Filters.Select(f => f.ToBal()).ToList() }; else balUser = new BllUser(); return balUser; }