public async Task <JsonResult> Delete(int id)
        {
            PeopleComment comment = await db.PeopleComments.FindAsync(id);

            if (comment == null)
            {
                return(Json(new { error = "404" }, JsonRequestBehavior.AllowGet));
            }
            if (comment.UserId != User.Identity.GetUserId())
            {
                return(Json(new { error = "Это не ваш коментарий" }, JsonRequestBehavior.AllowGet));
            }
            if (comment.Childrens.Any())
            {
                return(Json(new { success = false, error = "Коментарий не может быть удаленна, так как содержит ответы" }, JsonRequestBehavior.AllowGet));
            }
            db.PeopleComments.Remove(comment);
            await db.SaveChangesAsync();

            return(Json(Url.RouteUrl(new { Action = "Index", Controller = "PeopleComments", id = comment.PersonId, comment.ParentId }), JsonRequestBehavior.AllowGet));
        }
Пример #2
0
        protected override void Seed(ApplicationDbContext context)
        {
            ApplicationUser user = new ApplicationUser();

            if (!context.Roles.Any(r => r.Name == "Admin"))
            {
                var store   = new RoleStore <IdentityRole>(context);
                var manager = new RoleManager <IdentityRole>(store);
                var role    = new IdentityRole {
                    Name = "Admin"
                };
                manager.Create(role);
            }

            if (!context.Users.Any(u => u.UserName == "*****@*****.**"))
            {
                var store   = new UserStore <ApplicationUser>(context);
                var manager = new UserManager <ApplicationUser>(store);
                user = new ApplicationUser {
                    UserName = "******", Email = "*****@*****.**"
                };

                manager.Create(user, "Alex-123");
                manager.AddToRole(user.Id, "Admin");
            }
            Party party = new Party()
            {
                Name        = "политическая партия Всеукраинское объединение Батьківщина",
                PolitDerect = "Left"
            };
            City city = new City()
            {
                Name = "Киев"
            };
            Position posit = new Position()
            {
                Name = "Народный депутат"
            };
            List <Person> pers = new List <Person>()
            {
                new Person()
                {
                    Name      = "Иван",
                    Family    = "Иванович",
                    Surname   = "Иванов",
                    Foto      = "nf80.jpg",
                    Party     = party,
                    City      = city,
                    Date      = DateTime.Now,
                    Position  = posit,
                    Submitted = user,
                    Rate      = 0
                }, new Person()
                {
                    Name      = "Иван",
                    Family    = "Иванович",
                    Surname   = "Иванов",
                    Foto      = "nf80.jpg",
                    Party     = party,
                    City      = city,
                    Position  = posit,
                    Date      = DateTime.Now,
                    Submitted = user,
                    Rate      = 0
                }, new Person()
                {
                    Name      = "Иван",
                    Family    = "Иванович",
                    Surname   = "Иванов",
                    Foto      = "nf80.jpg",
                    Party     = party,
                    City      = city,
                    Date      = DateTime.Now,
                    Position  = posit,
                    Submitted = user,
                    Rate      = 0
                }, new Person()
                {
                    Name      = "Иван",
                    Family    = "Иванович",
                    Surname   = "Иванов",
                    Foto      = "nf80.jpg",
                    Party     = party,
                    City      = city,
                    Position  = posit,
                    Date      = DateTime.Now,
                    Submitted = user,
                    Rate      = 0
                }, new Person()
                {
                    Name      = "Иван",
                    Family    = "Иванович",
                    Surname   = "Иванов",
                    Foto      = "nf80.jpg",
                    Party     = party,
                    City      = city,
                    Position  = posit,
                    Date      = DateTime.Now,
                    Submitted = user,
                    Rate      = 0
                }, new Person()
                {
                    Name      = "Иван",
                    Family    = "Иванович",
                    Surname   = "Иванов",
                    Foto      = "nf80.jpg",
                    Party     = party,
                    City      = city,
                    Position  = posit,
                    Date      = DateTime.Now,
                    Submitted = user,
                    Rate      = 0
                }, new Person()
                {
                    Name      = "Иван",
                    Family    = "Иванович",
                    Surname   = "Иванов",
                    Foto      = "nf80.jpg",
                    Party     = party,
                    City      = city,
                    Position  = posit,
                    Date      = DateTime.Now,
                    Submitted = user,
                    Rate      = 0
                }, new Person()
                {
                    Name      = "Иван",
                    Family    = "Иванович",
                    Surname   = "Иванов",
                    Foto      = "nf80.jpg",
                    Party     = party,
                    City      = city,
                    Position  = posit,
                    Date      = DateTime.Now,
                    Submitted = user,
                    Rate      = 0
                }
            };
            List <PeopleComment> com1 = new List <PeopleComment>()
            {
                new PeopleComment()
                {
                    Person   = pers[1],
                    Text     = "LJMHasdasd1231asdasdasd13123123",
                    User     = user,
                    Datetime = DateTime.Now,
                }, new PeopleComment()
                {
                    Person   = pers[1],
                    Text     = "LJMHasdasd1231asdasdasd13123123",
                    User     = user,
                    Datetime = DateTime.Now,
                }, new PeopleComment()
                {
                    Person   = pers[1],
                    Text     = "LJMHasdasd1231asdasdasd13123123",
                    User     = user,
                    Datetime = DateTime.Now,
                }, new PeopleComment()
                {
                    Person   = pers[1],
                    Text     = "LJMHasdasd1231asdasdasd13123123",
                    User     = user,
                    Datetime = DateTime.Now,
                }, new PeopleComment()
                {
                    Person   = pers[1],
                    Text     = "LJMHasdasd1231asdasdasd13123123",
                    User     = user,
                    Datetime = DateTime.Now,
                }
            };
            PeopleComment com2 = new PeopleComment()
            {
                Person    = pers[1],
                Text      = "LJMHasdasd1231asdasdasd13123123",
                User      = user,
                Datetime  = DateTime.Now,
                Childrens = com1.Cast <Comment>().ToList()
            };
            List <Tag> tag = new List <Tag>()
            {
                new Tag()
                {
                    Name = "криминал"
                },
                new Tag()
                {
                    Name = "хорошие дела"
                }
            };
            List <PostComment> postComments = new List <PostComment>()
            {
                new PostComment()
                {
                    Text     = "LJMHasdasd1231asdasdasd13123123",
                    User     = user,
                    Datetime = DateTime.Now,
                }, new PostComment()
                {
                    Text     = "LJMHasdasd1231asdasdasd13123123",
                    User     = user,
                    Datetime = DateTime.Now,
                }, new PostComment()
                {
                    Text     = "LJMHasdasd1231asdasdasd13123123",
                    User     = user,
                    Datetime = DateTime.Now,
                }, new PostComment()
                {
                    Text     = "LJMHasdasd1231asdasdasd13123123",
                    User     = user,
                    Datetime = DateTime.Now,
                }, new PostComment()
                {
                    Text     = "LJMHasdasd1231asdasdasd13123123",
                    User     = user,
                    Datetime = DateTime.Now,
                }
            };
            PostDescription PostDescription = new PostDescription()
            {
                Content = "Picture removal detract earnest is by. Esteems met joy attempt way clothes yet demesne tedious. Replying an marianne do it an entrance advanced. Two dare say play when hold. Required bringing me material stanhill jointure is as he. Mutual indeed yet her living result matter him bed whence." +
                          "Ask especially collecting terminated may son expression.Extremely eagerness principle estimable own was man.Men received far his dashwood subjects new.My sufficient surrounded an companions dispatched in on.Connection too unaffected expression led son possession.New smiling friends and her another.Leaf she does none love high yet.Snug love will up bore as be.Pursuit man son musical general pointed.It surprise informed mr advanced do outweigh.",
                Type = "text",
            };
            Post post = new Post()
            {
                Person   = pers[1],
                User     = user,
                Title    = "Effect if in up no depend seemed. Ecstatic elegance gay but disposed",
                PostedOn = DateTime.Now,
                Tags     = new List <Tag>()
                {
                    tag[0], new Tag()
                    {
                        Name = "депутат"
                    }
                },
                PostFile    = "Effect_if_in_up_no_depend_seemed.",
                PostComment = postComments,
                Description = new List <PostDescription>()
                {
                    PostDescription
                }
            };

            context.Posts.Add(post);
            context.PostComments.AddRange(postComments);
            context.Tags.AddRange(tag);
            context.postDescriptions.Add(PostDescription);
            context.PeopleComments.Add(com2);
            context.Positions.Add(posit);
            context.Parties.Add(party);
            context.Cities.Add(city);
            context.Persons.AddRange(pers);
            base.Seed(context);
        }
        public JsonResult Create([Bind(Include = "Text,ParentId,PersonId")] PeopleComment comment)
        {
            if (ModelState.IsValid)
            {
                PeopleComment com;
                comment.Text = Regex.Replace(comment.Text,
                                             @"((http|ftp|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&amp;:/~\+#]*[\w\-\@?^=%&amp;/~\+#])?)",
                                             "<a target='_blank' href='$1'>$1</a>");
                if (comment.ParentId == 0)
                {
                    var c = db.PeopleComments.Where(x => x.PersonId == comment.PersonId).ToList();
                    if (c.Any())
                    {
                        com = new PeopleComment()
                        {
                            Text     = comment.Text,
                            Datetime = DateTime.Now,
                            User     = UserManager.FindById(User.Identity.GetUserId()),
                            PersonId = comment.PersonId,
                            ParentId = null,
                        };
                        db.PeopleComments.Add(com);
                        db.SaveChanges();
                        //wrap all url in text to html links

                        return(new JsonResult
                        {
                            Data = new
                            {
                                success = true,
                                ischild = false,
                                view = this.RenderPartialView("OnCreateResult", com)
                            },
                            JsonRequestBehavior = JsonRequestBehavior.AllowGet
                        });
                    }
                    else
                    {
                        com = new PeopleComment()
                        {
                            Text     = comment.Text,
                            Datetime = DateTime.Now,
                            User     = UserManager.FindById(User.Identity.GetUserId()),
                            PersonId = comment.PersonId,
                            ParentId = null,
                        };
                        db.PeopleComments.Add(com);
                        db.SaveChanges();

                        var coments = new List <PeopleComment>();
                        coments.Add(com);
                        ViewBag.personId  = comment.PersonId;
                        ViewBag.ChildFlag = 0;

                        return(new JsonResult
                        {
                            Data = new
                            {
                                success = true,
                                ischild = false,
                                view = this.RenderPartialView("Index", coments)
                            },
                            JsonRequestBehavior = JsonRequestBehavior.AllowGet
                        });
                    }
                }
                else
                {
                    com = new PeopleComment()
                    {
                        Text     = comment.Text,
                        Datetime = DateTime.Now,
                        User     = UserManager.FindById(User.Identity.GetUserId()),
                        PersonId = comment.PersonId,
                        ParentId = comment.ParentId,
                    };
                    var commentTemp = db.PeopleComments.Find(comment.ParentId);
                    if (commentTemp == null)
                    {
                        return(Json(new { error = "404" }, JsonRequestBehavior.AllowGet));
                    }
                    commentTemp.Childrens.Add(com);
                    db.SaveChanges();

                    var coments = db.PeopleComments.Where(x => x.PersonId == comment.PersonId && x.ParentId == comment.ParentId).ToList();
                    ViewBag.personId  = comment.PersonId;
                    ViewBag.ChildFlag = 0;

                    return(new JsonResult
                    {
                        Data = new {
                            success = true,
                            ischild = true,
                            view = this.RenderPartialView("Index", coments)
                        },
                        JsonRequestBehavior = JsonRequestBehavior.AllowGet
                    });
                }
            }

            return(Json(new { error = "404" }, JsonRequestBehavior.AllowGet));
        }