public void UpdateKnowledgeDesigner(string[] selectedDesigner, KnowledgeVM knowledgeToUpdate) { if (knowledgeToUpdate.KnowledgeDesigner == null) { knowledgeToUpdate.KnowledgeDesigner = new List <KnowledgeDesignerVM>(); } var all = designerRepository.GetAll(); var selectedDesignerHS = new HashSet <string>(selectedDesigner); var knowledgeDesigner = new HashSet <int>(knowledgeToUpdate.KnowledgeDesigner.Select(c => c.Designer.Id)); knowledgeDesignerRepository.RemoveAll(knowledgeToUpdate.Id); foreach (var designer in all) { if (selectedDesignerHS.Contains(designer.Id.ToString())) { if (!knowledgeDesigner.Contains(designer.Id)) { knowledgeToUpdate.KnowledgeDesigner.Add(new KnowledgeDesignerVM { KnowledgeId = knowledgeToUpdate.Id, DesignerId = designer.Id }); } } else { if (knowledgeDesigner.Contains(designer.Id)) { var knowledgeToRemove = knowledgeToUpdate.KnowledgeDesigner.SingleOrDefault(i => i.DesignerId == designer.Id); knowledgeDesignerRepository.Remove(mapper.Map <KnowledgeDesigner>(knowledgeToRemove)); } } } }
public IEnumerable <DesignerVM> GetAll() { return(designerRepository.GetAll().ProjectTo <DesignerVM>(mapper.ConfigurationProvider)); }