public ActionResult Index(string statusMessage)
        {
            var status = new Status
            {
                User = context.Users.Find(WebSecurity.CurrentUserId),
                Message = statusMessage,
                DateTime = DateTime.Now
            };

            context.Status.Add(status);
            context.SaveChanges();

            return RedirectToAction("Index");
        }
        public ActionResult AddStatus(string text)
        {
            var status = new Status
            {
                Author = currentUser,
                DateTime = DateTime.Now,
                Text = text,
                IsDeletable = true
            };

            context.Status.Add(status);
            context.SaveChanges();

            ModelState.Clear();
            return PartialView("StatusPartial", status);
        }
        public ActionResult RemoveStatus(Status model)
        {
            var status = context.Status.Find(model.Id);

            if (currentUser.CanDelete(status))
            {
                status.Comments.ToList().ForEach(c => context.Comments.Remove(c));

                context.Status.Remove(status);
                context.SaveChanges();
            }

            var statuses = Statuses();

            ModelState.Clear();
            return PartialView("StatusesPartial", statuses);
        }
        private IQueryable<Comment> CommentsByStatus(Status status)
        {
            var currentUser = context.Users
                .Find(WebSecurity.CurrentUserId);

            var comments = context.Comments
                .Where(c => c.Status.Id == status.Id);

            foreach (var comment in comments)
            {
                comment.IsUpdatable = currentUser.CanUpdate(comment);
                comment.IsDeletable = currentUser.CanDelete(comment);
            }

            return comments;
        }
Example #5
0
 public bool CanDelete(Status status)
 {
     return Id == status.Author.Id;
 }