public static bool DoRemovePost(this DBEntities DB, int Id) { Post postToDelete = DB.Posts.Find(Id); if (postToDelete != null) { var childs = DB.PostsChilds.Where(pc => pc.PostId == Id).ToArray(); if (childs != null) { for (int i = 0; i < childs.Count(); i++) { DB.DoRemovePost(childs[i].ChildPostId); } } PostsChild childpostToDelete = DB.PostsChilds.Where(pc => pc.ChildPostId == Id).FirstOrDefault(); if (childpostToDelete != null) { DB.PostsChilds.Remove(childpostToDelete); } DB.Posts.Remove(postToDelete); DB.SaveChanges(); PostsLastUpdate = DateTime.Now; return(true); } return(false); }
public static PostView AddPost(this DBEntities DB, PostView postView) { Post post = postView.ToPost(); BeginTransaction(DB); post = DB.Posts.Add(post); DB.SaveChanges(); if (post.ParentPostId != 0) { PostsChild pc = new PostsChild { PostId = post.ParentPostId, ChildPostId = post.Id }; DB.PostsChilds.Add(pc); DB.SaveChanges(); } Commit(); PostsLastUpdate = DateTime.Now; return(post.ToPostView()); }