コード例 #1
0
 public List <Post> GetAllPosts(int blogId)
 {
     using (PSBlogContext db = new PSBlogContext())
     {
         return(db.Blogs.Include(b => b.Posts).First(b => b.Id == blogId).Posts.ToList());
     }
 }
コード例 #2
0
 public void Save()
 {
     using (PSBlogContext db = new PSBlogContext())
     {
         db.SaveChanges();
     }
 }
コード例 #3
0
 public virtual IList <T> FetchAll()
 {
     using (PSBlogContext db = new PSBlogContext())
     {
         return(db.Set <T>().ToList());
     }
 }
コード例 #4
0
 public virtual T FindById(int id)
 {
     using (PSBlogContext db = new PSBlogContext())
     {
         return(db.Set <T>().First(el => el.Id == id));
     }
 }
コード例 #5
0
 public bool IsUserHaveBlog(string userName)
 {
     using (PSBlogContext db = new PSBlogContext())
     {
         return(db.Blogs.Any(blog => blog.Owner.UserName == userName));
     }
 }
コード例 #6
0
        public override void Remove(int id)
        {
            using (PSBlogContext db = new PSBlogContext())
            {
                var userBlog = db.Blogs.Include(b => b.Owner).FirstOrDefault(blog => blog.Owner.Id == id);
                if (userBlog != null)
                {
                    db.Entry(userBlog).State = EntityState.Deleted;
                }

                var userComments = db.Comments.Where(c => c.User.Id == id);
                foreach (var userComment in userComments)
                {
                    db.Entry(userComment).State = EntityState.Deleted;
                }

                var selectedUser = db.Users.Include(u => u.Roles).FirstOrDefault(user => user.Id == id);
                if (selectedUser != null)
                {
                    db.Entry(selectedUser).State = EntityState.Deleted;
                }

                db.SaveChanges();
            }
        }
コード例 #7
0
 public bool IsUserNameTaken(string username)
 {
     using (PSBlogContext db = new PSBlogContext())
     {
         return(db.Users.Any() && db.Users.ToList().Any(x => x.UserName == username));
     }
 }
コード例 #8
0
 public override User FindById(int id)
 {
     using (PSBlogContext db = new PSBlogContext())
     {
         return(db.Users.Include(u => u.Roles).First(user => user.Id == id));
     }
 }
コード例 #9
0
 public User FindByUserName(string username)
 {
     using (PSBlogContext db = new PSBlogContext())
     {
         return(db.Users.Include(u => u.Roles).FirstOrDefault(user => user.UserName == username));
     }
 }
コード例 #10
0
 public override IList <User> FetchAll()
 {
     using (PSBlogContext db = new PSBlogContext())
     {
         return(db.Users.Include(u => u.Roles).ToList());
     }
 }
コード例 #11
0
 public virtual void Edit(T entity)
 {
     using (PSBlogContext db = new PSBlogContext())
     {
         db.Entry(entity).State = EntityState.Modified;
         db.SaveChanges();
     }
 }
コード例 #12
0
 public virtual void Add(T entity)
 {
     using (PSBlogContext db = new PSBlogContext())
     {
         db.Set <T>().Add(entity);
         db.SaveChanges();
     }
 }
コード例 #13
0
 public virtual void Remove(int id)
 {
     using (PSBlogContext db = new PSBlogContext())
     {
         T entity = db.Set <T>().First(el => el.Id == id);
         db.Entry(entity).State = EntityState.Deleted;
         db.SaveChanges();
     }
 }
コード例 #14
0
 public void AddToUser(Blog entity, User user)
 {
     using (PSBlogContext db = new PSBlogContext())
     {
         entity.UrlSlug = GenerateUniqueSlug <Blog>(entity.UrlSlug);
         entity.Owner   = db.Users.Attach(user);
         db.Blogs.Add(entity);
         db.SaveChanges();
     }
 }
コード例 #15
0
 public override void Remove(int id)
 {
     using (PSBlogContext db = new PSBlogContext())
     {
         Blog blog = db.Blogs.First(b => b.Id == id);
         blog.Posts.RemoveAll(p => true);
         db.Entry(blog).State = EntityState.Deleted;
         db.SaveChanges();
     }
 }
コード例 #16
0
 public override void Edit(Post entity)
 {
     using (PSBlogContext db = new PSBlogContext())
     {
         Post post = db.Posts.First(p => p.Id == entity.Id);
         post.Title           = entity.Title;
         post.Content         = entity.Content;
         db.Entry(post).State = EntityState.Modified;
         db.SaveChanges();
     }
 }
コード例 #17
0
 public Blog GetBlogBySlugUrl(string slugUrl)
 {
     using (PSBlogContext db = new PSBlogContext())
     {
         return(db.Blogs
                .Include(x => x.Posts)
                .Include(x => x.Posts.Select(p => p.Tags))
                .Include(x => x.Owner)
                .Single(b => b.UrlSlug == slugUrl));
     }
 }
コード例 #18
0
 public Blog GetUserBlog(string userName)
 {
     using (PSBlogContext db = new PSBlogContext())
     {
         return(db.Blogs
                .Include(b => b.Posts)
                .Include(b => b.Posts.Select(p => p.Tags))
                .Include(b => b.Owner)
                .FirstOrDefault(blog => blog.Owner.UserName == userName));
     }
 }
コード例 #19
0
 public override void Remove(int id)
 {
     using (PSBlogContext db = new PSBlogContext())
     {
         Post entity = db.Posts.Include(p => p.Tags)
                       .Include(p => p.Comments).First(el => el.Id == id);
         entity.Tags.RemoveAll(p => true);
         entity.Comments.RemoveAll(c => true);
         db.Entry(entity).State = EntityState.Deleted;
         db.SaveChanges();
     }
 }
コード例 #20
0
 protected string GenerateUniqueSlug <T>(string urlSlug) where T : class, IUrlSlug
 {
     using (PSBlogContext db = new PSBlogContext())
     {
         bool unique = !db.Set <T>().Any(x => x.UrlSlug == urlSlug);
         if (!unique)
         {
             return(GenerateUniqueSlug <T>(urlSlug, 1));
         }
         return(urlSlug);
     }
 }
コード例 #21
0
 private string GenerateUniqueSlug <T>(string urlSlug, int numberTries) where T : class, IUrlSlug
 {
     using (PSBlogContext db = new PSBlogContext())
     {
         string newSlug = urlSlug + numberTries;
         bool   unique  = !db.Set <T>().Any(x => x.UrlSlug == newSlug);
         if (!unique)
         {
             newSlug = GenerateUniqueSlug <T>(newSlug, ++numberTries);
         }
         return(newSlug);
     }
 }
コード例 #22
0
 public void AddPost(int blogId, Post post)
 {
     using (PSBlogContext db = new PSBlogContext())
     {
         Blog blog = db.Blogs.First(b => b.Id == blogId);
         blog.Posts.Add(post);
         int rowsChanged = db.SaveChanges();
         if (rowsChanged == 0)
         {
             //no rows are changed
             System.Diagnostics.Debugger.Break();
         }
     }
 }
コード例 #23
0
        public IEnumerable <string> GetRolesForUser(string username)
        {
            using (PSBlogContext db = new PSBlogContext())
            {
                var selectedUser = db.Users.Include(u => u.Roles).FirstOrDefault(user => user.UserName == username);
                if (selectedUser == null)
                {
                    return(null);
                }
                var roles = selectedUser.Roles.Select(role => role.Name);

                var onemoretime = FindById(selectedUser.Id);
                return(roles);
            }
        }
コード例 #24
0
        public void TakeAwayAdminRole(User user)
        {
            using (PSBlogContext db = new PSBlogContext())
            {
                var  adminRole = user.Roles.First(r => r.Name == Settings.Default.SuperAdminRole);
                bool status    = user.Roles.Remove(adminRole);
                //db.Roles.Remove(adminRole);
                //_db.Entry(user).State = EntityState.Modified;
                int count = db.SaveChanges();
                //var adminRole = user.Roles.First(role => role.Name == Settings.Default.SuperAdminRole);

                db.Entry(adminRole).State = EntityState.Deleted;
                count = db.SaveChanges();
            }
        }
コード例 #25
0
 public PostDetailsModel GetPostDetails(string blogSlug, string postSlug)
 {
     using (PSBlogContext db = new PSBlogContext())
     {
         Blog selectedBlog = db.Blogs
                             .Include(b => b.Posts)
                             .Include(b => b.Posts.Select(p => p.Comments))
                             .Include(b => b.Posts.Select(p => p.Comments.Select(c => c.User)))
                             .First(b => b.UrlSlug == blogSlug);
         Post selectedPost = selectedBlog.Posts.First(p => p.UrlSlug == postSlug);
         return(new PostDetailsModel {
             Blog = selectedBlog, Post = selectedPost
         });
     }
 }
コード例 #26
0
 public void AddComment(string commentContent, string commentUserName, string blogSlug, string postSlug)
 {
     using (PSBlogContext db = new PSBlogContext())
     {
         var selectedPost = db.Blogs
                            .Include(b => b.Posts)
                            .First(b => b.UrlSlug == blogSlug)
                            .Posts
                            .First(p => p.UrlSlug == postSlug);
         var selectedUser = db.Users.First(u => u.UserName == commentUserName);
         selectedPost.Comments.Add(new Comment {
             Content = commentContent, User = selectedUser
         });
         db.SaveChanges();
     }
 }
コード例 #27
0
        public void GrantAdminRole(User user)
        {
            using (PSBlogContext db = new PSBlogContext())
            {
                var adminRole = new Role {
                    Name = Settings.Default.SuperAdminRole
                };
                db.Roles.Add(adminRole);
                if (!user.Roles.Any(role => role.Name == Settings.Default.SuperAdminRole))
                {
                    user.Roles.Add(adminRole);
                }

                db.Entry(user).State = EntityState.Modified;
                int count = db.SaveChanges();
            }
        }