Exemplo n.º 1
0
        public ActionResult BlogIndex(int page = 1)
        {
            // Read the list
            var blogs = PostManager.Read();

            if (blogs == null)
            {
                ViewBag.Empty = true;
                return(View());
            }
            else
            {
                var blogsView = new BlogModels
                {
                    BlogPerPage = 5,
                    Blogs       = (from blog in blogs
                                   orderby blog.CreateTime descending
                                   select blog).ToList(),

                    CurrentPage = page
                };

                return(View(blogsView));
            }
        }
Exemplo n.º 2
0
        public ActionResult WriteComment(int postId)
        {
            Post post;

            using (var db = new BlogModels())
            {
                post = db.Posts.Include(p => p.Comments).First(p => p.Id == postId);
            }

            var model = new WriteCommentModel();

            model.Post = post;
            using (var idb = new IdentityDbContext())
            {
                var authors = post.Comments.Select(p => p.Author).ToList();
                authors.Add(post.Author);
                List <IdentityUser> allAuth = new List <IdentityUser>();
                foreach (string author in authors)
                {
                    var autor = idb.Users.FirstOrDefault(u => u.Id == author);
                    if (autor != null)
                    {
                        allAuth.Add(autor);
                    }
                }

                model.AllAuthors = allAuth.ToArray();
            }

            return(View(model));
        }
Exemplo n.º 3
0
        public ActionResult NewPost(NewPostModel model)
        {
            if (!User.IsInRole("admin"))
            {
                return(RedirectToAction("Index"));
            }
            if (ModelState.IsValid)
            {
                using (var db = new BlogModels())
                {
                    Post new_post = new Post()
                    {
                        Label        = model.Label, Text = model.Text, ImageUrl = model.ImageUrl,
                        CreationTime = DateTime.Now, Author = User.Identity.GetUserId(),
                        Likes        = 0, Views = 0
                    };
                    db.Posts.Add(new_post);
                    db.SaveChanges();
                }

                return(RedirectToAction("Index", "Blog"));
            }

            ModelState.AddModelError("", "Что то не правильно");
            return(View(model));
        }
Exemplo n.º 4
0
        // GET
        public ActionResult Index()
        {
            AllPostsModel allPosts = new AllPostsModel();

            using (var db = new BlogModels())
            {
                allPosts.AllPosts = db.Posts.Include(p => p.Comments).OrderByDescending(p => p.CreationTime).Take(100).ToArray();
                var allAuthorsId = allPosts.AllPosts.Select(p => p.Author);
                using (var idb = new IdentityDbContext())
                {
                    var allIdentityUsers = from user in idb.Users
                                           where allAuthorsId.Contains(user.Id)
                                           select user;
                    foreach (var post in allPosts.AllPosts)
                    {
                        post.Views++;
                    }

                    allPosts.AllAuthors = allIdentityUsers.ToArray();
                    db.SaveChanges();
                }
            }

            return(View(allPosts));
        }
Exemplo n.º 5
0
        public ActionResult Index()
        {
            HomeIndexViewModel allPosts = new HomeIndexViewModel();

            using (var db = new BlogModels()) {
                allPosts.AllPosts = db.Posts.OrderByDescending(p => p.CreationTime).Take(4).ToArray();
                allPosts.AllPosts.ForEach(p => p.Views++);
            }
            return(View(allPosts));
        }
Exemplo n.º 6
0
        public ActionResult WriteComment(WriteCommentModel model, int postId)
        {
            using (var db = new BlogModels())
            {
                Post post;
                post = db.Posts.Include(p => p.Comments).Single(p => p.Id == postId);

                model.Post = post;
                using (var idb = new IdentityDbContext())
                {
                    var authors = post.Comments.Select(p => p.Author).ToList();
                    authors.Add(post.Author);
                    List <IdentityUser> allAuth = new List <IdentityUser>();
                    foreach (string author in authors)
                    {
                        var autor = idb.Users.FirstOrDefault(u => u.Id == author);
                        if (autor != null)
                        {
                            allAuth.Add(autor);
                        }
                    }

                    model.AllAuthors = allAuth.ToArray();
                }

                if (ModelState.IsValid)
                {
                    Comment newC = new Comment()
                    {
                        Author       = User.Identity.GetUserId(),
                        Body         = model.Body,
                        Likes        = 0,
                        Views        = 0,
                        CreationTime = DateTime.Now,
                    };
                    db.Entry(post).Entity.Comments.Add(newC);
                    db.SaveChanges();
                    return(RedirectToAction("Index", "Blog"));
                }

                ModelState.AddModelError("", "Заполните все поля!");
                return(View(model));
            }
        }