Beispiel #1
0
        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);
        }
Beispiel #2
0
        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());
        }