コード例 #1
0
        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));
                    }
                }
            }
        }
コード例 #2
0
 public IEnumerable <DesignerVM> GetAll()
 {
     return(designerRepository.GetAll().ProjectTo <DesignerVM>(mapper.ConfigurationProvider));
 }