/// <summary> /// Saves the current edit model. /// </summary> /// <returns>Whether the entity was updated or not</returns> public bool Save() { using (var db = new DataContext()) { var comment = db.Comments.Where(c => c.Id == Id).SingleOrDefault(); if (comment == null) { comment = new Comment(); comment.Attach(db, EntityState.Added); comment.ParentId = ParentId; comment.Title = Title; comment.Body = Body; } comment.Status = Status; return(db.SaveChanges() > 0); } }
public ActionResult Save(CommentSaveModel m) { if (ModelState.IsValid && m.SessionId == Session.SessionID) { using (var db = new DataContext()) { // Check if the comment belongs to a standard entity. var isPage = db.Pages.Where(p => p.Id == m.ParentId).SingleOrDefault() != null; var isPost = !isPage && db.Posts.Where(p => p.Id == m.ParentId).SingleOrDefault() != null; var isMedia = !isPage && !isPost && db.Posts.Where(c => c.Id == m.ParentId).SingleOrDefault() != null; var isUload = !isPage && !isPost && !isMedia && db.Uploads.Where(u => u.Id == m.ParentId).SingleOrDefault() != null; // Now get the comment settings var sett = Areas.Manager.Models.CommentSettingsModel.Get(); // Check comment settings according to type if (isPage && (!sett.EnablePages || (!App.Instance.UserProvider.IsAuthenticated && !sett.EnableAnonymous))) { return(Redirect("~/")); } else if (isPost && (!sett.EnablePosts || (!App.Instance.UserProvider.IsAuthenticated && !sett.EnableAnonymous))) { return(Redirect("~/")); } else if (isMedia && (!sett.EnableMedia || (!App.Instance.UserProvider.IsAuthenticated && !sett.EnableAnonymous))) { return(Redirect("~/")); } else if (isUload && (!sett.EnableUploads || (!App.Instance.UserProvider.IsAuthenticated && !sett.EnableAnonymous))) { return(Redirect("~/")); } Comment comment = null; // Try to load the comment if this is an update if (m.Id != null) { comment = db.Comments.Where(c => c.Id == m.Id).SingleOrDefault(); } // If no existing comment was found, create a new if (comment == null) { comment = new Comment(); comment.Attach(db, EntityState.Added); } // If the user isn't authenticated, add user info if (!App.Instance.UserProvider.IsAuthenticated) { comment.AuthorName = m.AuthorName; comment.AuthorEmail = m.AuthorEmail; } // Update standard properties comment.Title = m.Title; comment.Body = m.Body; db.SaveChanges(); } } return(new RedirectResult("~/")); }