public IList<Post> GetPublicPosts()
 {
     using (DomainContext context = new DomainContext())
     {
         return context.Posts.Where(p => p.Approved).ToList();
     }
 }
 public IList<Post> GetPosts()
 {
     using (DomainContext context = new DomainContext())
     {
         return context.Posts.ToList();
     }
 }
 public Post GetPost(string name)
 {
     using (DomainContext context = new DomainContext())
     {
         return context.Posts.ToList().FirstOrDefault(p => string.Equals(p.Title, name, StringComparison.InvariantCultureIgnoreCase));
     }
 }
 public Post GetPost(int id)
 {
     using (DomainContext context = new DomainContext())
     {
         return context.Posts.FirstOrDefault(p => p.Id == id);
     }
 }
 public void UpdatePost(Post post)
 {
     using (DomainContext context = new DomainContext())
     {
         context.Posts.Attach(post);
         context.Entry(post).State = EntityState.Modified;
         context.SaveChanges();
     }
 }
 public void DeletePost(Post post)
 {
     using (DomainContext context = new DomainContext())
     {
         context.Posts.Attach(post);
         context.Posts.Remove(post);
         context.SaveChanges();
     }
 }
        public bool PromoteToAdmin(string userName)
        {
            using (DomainContext context = new DomainContext())
            {
                UserProfile existingUser = context.UserProfiles.FirstOrDefault(u => u.UserName.ToLower() == userName.ToLower());
                if (existingUser != null)
                {

                    return true;
                }
                return false;
            }
        }
 public bool AddUser(UserProfile user)
 {
     using (DomainContext context = new DomainContext())
     {
         UserProfile existingUser = context.UserProfiles.FirstOrDefault(u => u.UserName.ToLower() == user.UserName.ToLower());
         if (existingUser == null)
         {
             context.UserProfiles.Add(user);
             context.SaveChanges();
             return true;
         }
         return false;
     }
 }
        public bool AddPost(Post post)
        {
            if (GetPost(post.Title) != null)
            {
                return false;
            }

            using (DomainContext context = new DomainContext())
            {
                context.Posts.Add(post);
                context.SaveChanges();
            }
            return true;
        }