public ContentHead SaveContent(ContentHead content) { using (var context = new Data.CMSContext()) { ContentHead oldContent = GetContent(content.ContentUId); List <CrossLink> removedLinks = new List <CrossLink>(); List <CrossLink> addedLinks = content.CrossLinks.ToList(); if (oldContent == null) { context.ContentHeads.Add(content); } else { context.ContentHeads.Attach(oldContent); context.Entry <ContentHead>(oldContent).CurrentValues.SetValues(content); context.Entry <ContentData>(oldContent.Data).CurrentValues.SetValues(content.Data); if (oldContent.CustomInfo != null) { context.Entry <ContentCustomInfo>(oldContent.CustomInfo).CurrentValues.SetValues(content.CustomInfo); } } //context.ApplyCollectionValues<CrossLink>(oldContent != null ? oldContent.CrossLinks : null, content.CrossLinks, (t1, t2) => { return t1.PageArea == t2.PageArea; }); ApplyCollectionValuesCrossLinks(oldContent != null ? oldContent.CrossLinks : null, content.CrossLinks); context.ApplyCollectionValues <ContentTag>(oldContent != null ? oldContent.Tags : null, content.Tags, (t1, t2) => { return(t1.Tag == t2.Tag); }); context.SaveChanges(); } return(content); }
public ContentHead SaveContent(ContentHead content) { ContentHead oldContent = GetContent(content.ContentUId); List <CrossLink> removedLinks = new List <CrossLink>(); List <CrossLink> addedLinks = content.CrossLinks.ToList(); if (oldContent == null) { _context.ContentHeads.Add(content); } else { _context.ContentHeads.Attach(oldContent); _context.Entry <ContentHead>(oldContent).CurrentValues.SetValues(content); _context.Entry <ContentData>(oldContent.Data).CurrentValues.SetValues(content.Data); if (oldContent.CustomInfo != null) { _context.Entry <ContentCustomInfo>(oldContent.CustomInfo).CurrentValues.SetValues(content.CustomInfo); } } ApplyCollectionValuesCrossLinks(oldContent != null ? oldContent.CrossLinks : null, content.CrossLinks); //_context.ApplyCollectionValues<CrossLink>(oldContent != null ? oldContent.CrossLinks : null, content.CrossLinks, (c1, c2) => { return c1.PageArea == c2.PageArea; }); _context.ApplyCollectionValues <ContentTag>(oldContent != null ? oldContent.Tags : null, content.Tags, (t1, t2) => { return(t1.Tag == t2.Tag); }); _context.SaveChanges(); _log.Log($"Content '{content.Name}' ({content.Kind}) was created/updated."); return(content); }
public ContentHead SaveContent(ContentHead content) { using (var context = new Data.CMSContext()) { ContentHead oldContent = GetContent(content.ContentUId); List<CrossLink> removedLinks = new List<CrossLink>(); List<CrossLink> addedLinks = content.CrossLinks.ToList(); if (oldContent == null) { context.ContentHeads.Add(content); } else { context.ContentHeads.Attach(oldContent); context.Entry<ContentHead>(oldContent).CurrentValues.SetValues(content); context.Entry<ContentData>(oldContent.Data).CurrentValues.SetValues(content.Data); if(oldContent.CustomInfo!=null) context.Entry<ContentCustomInfo>(oldContent.CustomInfo).CurrentValues.SetValues(content.CustomInfo); } //context.ApplyCollectionValues<CrossLink>(oldContent != null ? oldContent.CrossLinks : null, content.CrossLinks, (t1, t2) => { return t1.PageArea == t2.PageArea; }); ApplyCollectionValuesCrossLinks(oldContent != null ? oldContent.CrossLinks : null, content.CrossLinks); context.ApplyCollectionValues<ContentTag>(oldContent != null ? oldContent.Tags : null, content.Tags, (t1, t2) => { return t1.Tag == t2.Tag; }); context.SaveChanges(); } return content; }