public ActionResult NewsCommentAdd(int newsItemId, NewsItemModel model, bool captchaValid) { if (!_newsSettings.Enabled) { return(RedirectToRoute("HomePage")); } var newsItem = _newsService.GetNewsById(newsItemId); if (newsItem == null || !newsItem.Published || !newsItem.AllowComments) { return(RedirectToRoute("HomePage")); } //validate CAPTCHA if (_captchaSettings.Enabled && _captchaSettings.ShowOnNewsCommentPage && !captchaValid) { ModelState.AddModelError("", _localizationService.GetResource("Common.WrongCaptcha")); } if (_workContext.CurrentCustomer.IsGuest() && !_newsSettings.AllowNotRegisteredUsersToLeaveComments) { ModelState.AddModelError("", _localizationService.GetResource("News.Comments.OnlyRegisteredUsersLeaveComments")); } if (ModelState.IsValid) { var comment = new NewsComment() { NewsItemId = newsItem.Id, CustomerId = _workContext.CurrentCustomer.Id, IpAddress = _webHelper.GetCurrentIpAddress(), CommentTitle = model.AddNewComment.CommentTitle, CommentText = model.AddNewComment.CommentText, IsApproved = true, CreatedOnUtc = DateTime.UtcNow, UpdatedOnUtc = DateTime.UtcNow, }; _customerContentService.InsertCustomerContent(comment); //update totals _newsService.UpdateCommentTotals(newsItem); //notify store owner); if (_newsSettings.NotifyAboutNewNewsComments) { _workflowMessageService.SendNewsCommentNotificationMessage(comment, _localizationSettings.DefaultAdminLanguageId); } //The text boxes should be cleared after a comment has been posted //That' why we reload the page TempData["nop.news.addcomment.result"] = _localizationService.GetResource("News.Comments.SuccessfullyAdded"); return(RedirectToRoute("NewsItem", new { newsItemId = newsItem.Id, SeName = newsItem.GetSeName() })); } //If we got this far, something failed, redisplay form PrepareNewsItemModel(model, newsItem, true); return(View(model)); }
public ActionResult NewsCommentAdd(int newsItemId, NewsItemModel model, bool captchaValid) { if (!_newsSettings.Enabled) { return(HttpNotFound()); } var newsItem = _newsService.GetNewsById(newsItemId); if (newsItem == null || !newsItem.Published || !newsItem.AllowComments) { return(HttpNotFound()); } //validate CAPTCHA if (_captchaSettings.Enabled && _captchaSettings.ShowOnNewsCommentPage && !captchaValid) { ModelState.AddModelError("", _localizationService.GetResource("Common.WrongCaptcha")); } if (_workContext.CurrentCustomer.IsGuest() && !_newsSettings.AllowNotRegisteredUsersToLeaveComments) { ModelState.AddModelError("", _localizationService.GetResource("News.Comments.OnlyRegisteredUsersLeaveComments")); } if (ModelState.IsValid) { var comment = new NewsComment() { NewsItemId = newsItem.Id, CustomerId = _workContext.CurrentCustomer.Id, IpAddress = _webHelper.GetCurrentIpAddress(), CommentTitle = model.AddNewComment.CommentTitle, CommentText = model.AddNewComment.CommentText, IsApproved = true }; _customerContentService.InsertCustomerContent(comment); //update totals _newsService.UpdateCommentTotals(newsItem); //notify a store owner; if (_newsSettings.NotifyAboutNewNewsComments) { Services.MessageFactory.SendNewsCommentNotificationMessage(comment, _localizationSettings.DefaultAdminLanguageId); } //activity log _customerActivityService.InsertActivity("PublicStore.AddNewsComment", _localizationService.GetResource("ActivityLog.PublicStore.AddNewsComment")); NotifySuccess(T("News.Comments.SuccessfullyAdded")); return(RedirectToRoute("NewsItem", new { SeName = newsItem.GetSeName(newsItem.LanguageId, ensureTwoPublishedLanguages: false) })); } //If we got this far, something failed, redisplay form PrepareNewsItemModel(model, newsItem, true); return(View(model)); }
public ActionResult NewsCommentAdd(int newsItemId, NewsItemModel model) { if (!_newsSettings.Enabled) { return(RedirectToAction("Index", "Home")); } var newsItem = _newsService.GetNewsById(newsItemId); if (newsItem == null || !newsItem.Published || !newsItem.AllowComments) { return(RedirectToAction("Index", "Home")); } if (ModelState.IsValid) { if (_workContext.CurrentCustomer.IsGuest() && !_newsSettings.AllowNotRegisteredUsersToLeaveComments) { ModelState.AddModelError("", _localizationService.GetResource("News.Comments.OnlyRegisteredUsersLeaveComments")); } else { var comment = new NewsComment() { NewsItemId = newsItem.Id, CustomerId = _workContext.CurrentCustomer.Id, IpAddress = _webHelper.GetCurrentIpAddress(), CommentTitle = model.AddNewComment.CommentTitle, CommentText = model.AddNewComment.CommentText, IsApproved = true, CreatedOnUtc = DateTime.UtcNow, UpdatedOnUtc = DateTime.UtcNow, }; _customerContentService.InsertCustomerContent(comment); //notify store owner if (_newsSettings.NotifyAboutNewNewsComments) { _workflowMessageService.SendNewsCommentNotificationMessage(comment, _localizationSettings.DefaultAdminLanguageId); } PrepareNewsItemDetailModel(model, newsItem, true); model.AddNewComment.CommentText = null; model.AddNewComment.Result = _localizationService.GetResource("News.Comments.SuccessfullyAdded"); return(View(model)); } } //If we got this far, something failed, redisplay form PrepareNewsItemDetailModel(model, newsItem, true); return(View(model)); }
public ActionResult NewsCommentAdd(int newsItemId, NewsItemModel model) { if (!_newsSettings.Enabled) { return(RedirectToAction("Index", "Home")); } var newsItem = _newsService.GetNewsById(newsItemId); if (newsItem == null || !newsItem.Published || !newsItem.AllowComments) { return(RedirectToAction("Index", "Home")); } if (ModelState.IsValid) { if (_workContext.CurrentCustomer.IsGuest() && !_newsSettings.AllowNotRegisteredUsersToLeaveComments) { ModelState.AddModelError(string.Empty, _localizationService.GetResource("News.Comments.OnlyRegisteredUsersLeaveComments")); } else { var comment = new NewsComment() { NewsItemId = newsItem.Id, CustomerId = _workContext.CurrentCustomer.Id, IpAddress = _webHelper.GetCurrentIpAddress(), CommentTitle = model.AddNewComment.CommentTitle, CommentText = model.AddNewComment.CommentText, IsApproved = true, CreatedOnUtc = DateTime.UtcNow, UpdatedOnUtc = DateTime.UtcNow, }; _customerContentService.InsertCustomerContent(comment); if (_newsSettings.NotifyAboutNewNewsComments) { _workflowMessageService.SendNewsCommentNotificationMessage(comment, _localizationSettings.DefaultAdminLanguageId); } TempData["fara.news.addcomment.result"] = _localizationService.GetResource("News.Comments.SuccessfullyAdded"); return(RedirectToRoute("NewsItem", new { newsItemId = newsItem.Id, SeName = newsItem.GetSeName() })); } } PrepareNewsItemModel(model, newsItem, true); return(View(model)); }
public ActionResult BlogCommentAdd(int blogPostId, BlogPostModel model) { if (!_blogSettings.Enabled) { return(RedirectToAction("Index", "Home")); } var blogPost = _blogService.GetBlogPostById(blogPostId); if (blogPost == null || !blogPost.AllowComments) { return(RedirectToAction("Index", "Home")); } if (ModelState.IsValid) { if (_workContext.CurrentCustomer.IsGuest() && !_blogSettings.AllowNotRegisteredUsersToLeaveComments) { ModelState.AddModelError("", _localizationService.GetResource("Blog.Comments.OnlyRegisteredUsersLeaveComments")); } else { var comment = new BlogComment() { BlogPostId = blogPost.Id, CustomerId = _workContext.CurrentCustomer.Id, IpAddress = _webHelper.GetCurrentIpAddress(), CommentText = model.AddNewComment.CommentText, IsApproved = true, CreatedOnUtc = DateTime.UtcNow, UpdatedOnUtc = DateTime.UtcNow, }; _customerContentService.InsertCustomerContent(comment); //notify store owner if (_blogSettings.NotifyAboutNewBlogComments) { _workflowMessageService.SendBlogCommentNotificationMessage(comment, _localizationSettings.DefaultAdminLanguageId); } //The text boxes should be cleared after a comment has been posted //That' why we reload the page TempData["nop.blog.addcomment.result"] = _localizationService.GetResource("Blog.Comments.SuccessfullyAdded"); return(RedirectToRoute("BlogPost", new { blogPostId = blogPost.Id, SeName = blogPost.GetSeName() })); } } //If we got this far, something failed, redisplay form PrepareBlogPostModel(model, blogPost, true); return(View(model)); }
public ActionResult BlogCommentAdd(int blogPostId, BlogPostModel model) { if (!_blogSettings.Enabled) { return(RedirectToAction("Index", "Home")); } var blogPost = _blogService.GetBlogPostById(blogPostId); if (blogPost == null || !blogPost.AllowComments) { return(RedirectToAction("Index", "Home")); } if (ModelState.IsValid) { if (_workContext.CurrentCustomer.IsGuest() && !_blogSettings.AllowNotRegisteredUsersToLeaveComments) { ModelState.AddModelError(string.Empty, _localizationService.GetResource("Blog.Comments.OnlyRegisteredUsersLeaveComments")); } else { var comment = new BlogPostComment() { BlogPostId = blogPost.Id, CustomerId = _workContext.CurrentCustomer.Id, IpAddress = _webHelper.GetCurrentIpAddress(), CommentText = model.AddNewComment.CommentText, IsApproved = true, CreatedOnUtc = DateTime.UtcNow, UpdatedOnUtc = DateTime.UtcNow, }; _customerContentService.InsertCustomerContent(comment); if (_blogSettings.NotifyAboutNewBlogComments) { _workflowMessageService.SendBlogCommentNotificationMessage(comment, _localizationSettings.DefaultAdminLanguageId); } TempData["fara.blog.addcomment.result"] = _localizationService.GetResource("Blog.Comments.SuccessfullyAdded"); return(RedirectToRoute("BlogPost", new { blogPostId = blogPost.Id, SeName = blogPost.GetSeName() })); } } PrepareBlogPostModel(model, blogPost, true); return(View(model)); }
public ActionResult BlogCommentAdd(int blogPostId, BlogPostModel model, bool captchaValid) { if (!_blogSettings.Enabled) { return(HttpNotFound()); } var blogPost = _blogService.GetBlogPostById(blogPostId); if (blogPost == null || !blogPost.AllowComments) { return(HttpNotFound()); } if (_workContext.CurrentCustomer.IsGuest() && !_blogSettings.AllowNotRegisteredUsersToLeaveComments) { ModelState.AddModelError("", _localizationService.GetResource("Blog.Comments.OnlyRegisteredUsersLeaveComments")); } //validate CAPTCHA if (_captchaSettings.Enabled && _captchaSettings.ShowOnBlogCommentPage && !captchaValid) { ModelState.AddModelError("", _localizationService.GetResource("Common.WrongCaptcha")); } if (ModelState.IsValid) { var comment = new BlogComment { BlogPostId = blogPost.Id, CustomerId = _workContext.CurrentCustomer.Id, IpAddress = _webHelper.GetCurrentIpAddress(), CommentText = model.AddNewComment.CommentText, IsApproved = true }; _customerContentService.InsertCustomerContent(comment); //update totals _blogService.UpdateCommentTotals(blogPost); //notify a store owner if (_blogSettings.NotifyAboutNewBlogComments) { _workflowMessageService.SendBlogCommentNotificationMessage(comment, _localizationSettings.DefaultAdminLanguageId); } //activity log _customerActivityService.InsertActivity("PublicStore.AddBlogComment", _localizationService.GetResource("ActivityLog.PublicStore.AddBlogComment")); NotifySuccess(T("Blog.Comments.SuccessfullyAdded")); var url = UrlHelper.GenerateUrl( routeName: "BlogPost", actionName: null, controllerName: null, protocol: null, hostName: null, fragment: "new-comment", routeValues: new RouteValueDictionary(new { blogPostId = blogPost.Id, SeName = blogPost.GetSeName(blogPost.LanguageId, ensureTwoPublishedLanguages: false) }), routeCollection: System.Web.Routing.RouteTable.Routes, requestContext: this.ControllerContext.RequestContext, includeImplicitMvcValues: true /*helps fill in the nulls above*/ ); return(Redirect(url)); } //If we got this far, something failed, redisplay form PrepareBlogPostModel(model, blogPost, true); return(View(model)); }
public ActionResult ReviewsAdd(int id, ProductReviewsModel model, bool captchaValid) { var product = _productService.GetProductById(id); if (product == null || product.Deleted || product.IsSystemProduct || !product.Published || !product.AllowCustomerReviews) { return(HttpNotFound()); } // validate CAPTCHA if (_captchaSettings.Enabled && _captchaSettings.ShowOnProductReviewPage && !captchaValid) { ModelState.AddModelError("", T("Common.WrongCaptcha")); } if (_services.WorkContext.CurrentCustomer.IsGuest() && !_catalogSettings.AllowAnonymousUsersToReviewProduct) { ModelState.AddModelError("", T("Reviews.OnlyRegisteredUsersCanWriteReviews")); } if (ModelState.IsValid) { //save review int rating = model.Rating; if (rating < 1 || rating > 5) { rating = _catalogSettings.DefaultProductRatingValue; } bool isApproved = !_catalogSettings.ProductReviewsMustBeApproved; var customer = _services.WorkContext.CurrentCustomer; var productReview = new ProductReview { ProductId = product.Id, CustomerId = customer.Id, IpAddress = _services.WebHelper.GetCurrentIpAddress(), Title = model.Title, ReviewText = model.ReviewText, Rating = rating, HelpfulYesTotal = 0, HelpfulNoTotal = 0, IsApproved = isApproved, }; _customerContentService.InsertCustomerContent(productReview); // update product totals _productService.UpdateProductReviewTotals(product); // notify store owner if (_catalogSettings.NotifyStoreOwnerAboutNewProductReviews) { Services.MessageFactory.SendProductReviewNotificationMessage(productReview, _localizationSettings.DefaultAdminLanguageId); } // activity log _services.CustomerActivity.InsertActivity("PublicStore.AddProductReview", T("ActivityLog.PublicStore.AddProductReview"), product.Name); if (isApproved) { _customerService.RewardPointsForProductReview(customer, product, true); } _helper.PrepareProductReviewsModel(model, product); model.Title = null; model.ReviewText = null; model.SuccessfullyAdded = true; if (!isApproved) { model.Result = T("Reviews.SeeAfterApproving"); } else { model.Result = T("Reviews.SuccessfullyAdded"); } return(View(model)); } // If we got this far, something failed, redisplay form _helper.PrepareProductReviewsModel(model, product); return(View(model)); }
public ActionResult ReviewsAdd(int id, ProductReviewsModel model, string captchaError) { var product = _productService.GetProductById(id); if (product == null || product.Deleted || product.IsSystemProduct || !product.Published || !product.AllowCustomerReviews) { return(HttpNotFound()); } if (_captchaSettings.ShowOnProductReviewPage && captchaError.HasValue()) { ModelState.AddModelError("", captchaError); } if (_services.WorkContext.CurrentCustomer.IsGuest() && !_catalogSettings.AllowAnonymousUsersToReviewProduct) { ModelState.AddModelError("", T("Reviews.OnlyRegisteredUsersCanWriteReviews")); } if (ModelState.IsValid) { var rating = model.Rating; if (rating < 1 || rating > 5) { rating = _catalogSettings.DefaultProductRatingValue; } var isApproved = !_catalogSettings.ProductReviewsMustBeApproved; var customer = _services.WorkContext.CurrentCustomer; var productReview = new ProductReview { ProductId = product.Id, CustomerId = customer.Id, IpAddress = _services.WebHelper.GetCurrentIpAddress(), Title = model.Title, ReviewText = model.ReviewText, Rating = rating, HelpfulYesTotal = 0, HelpfulNoTotal = 0, IsApproved = isApproved, }; _customerContentService.InsertCustomerContent(productReview); _productService.UpdateProductReviewTotals(product); if (_catalogSettings.NotifyStoreOwnerAboutNewProductReviews) { Services.MessageFactory.SendProductReviewNotificationMessage(productReview, _localizationSettings.DefaultAdminLanguageId); } _services.CustomerActivity.InsertActivity("PublicStore.AddProductReview", T("ActivityLog.PublicStore.AddProductReview"), product.Name); if (isApproved) { _customerService.RewardPointsForProductReview(customer, product, true); } _helper.PrepareProductReviewsModel(model, product); TempData["SuccessfullyAdded"] = true; return(RedirectToAction("Reviews")); } // If we got this far, something failed, redisplay form. _helper.PrepareProductReviewsModel(model, product); return(View(model)); }
public ActionResult BlogCommentAdd(int blogPostId, BlogPostModel model, bool captchaValid) { if (!_blogSettings.Enabled) { return(RedirectToRoute("HomePage")); } var blogPost = _blogService.GetBlogPostById(blogPostId); if (blogPost == null || !blogPost.AllowComments) { return(RedirectToRoute("HomePage")); } if (_workContext.CurrentCustomer.IsGuest() && !_blogSettings.AllowNotRegisteredUsersToLeaveComments) { ModelState.AddModelError("", _localizationService.GetResource("Blog.Comments.OnlyRegisteredUsersLeaveComments")); } //validate CAPTCHA if (_captchaSettings.Enabled && _captchaSettings.ShowOnBlogCommentPage && !captchaValid) { ModelState.AddModelError("", _localizationService.GetResource("Common.WrongCaptcha")); } if (ModelState.IsValid) { var comment = new BlogComment() { BlogPostId = blogPost.Id, CustomerId = _workContext.CurrentCustomer.Id, IpAddress = _webHelper.GetCurrentIpAddress(), CommentText = model.AddNewComment.CommentText, IsApproved = true, CreatedOnUtc = DateTime.UtcNow, UpdatedOnUtc = DateTime.UtcNow, }; _customerContentService.InsertCustomerContent(comment); //update totals _blogService.UpdateCommentTotals(blogPost); //notify a store owner if (_blogSettings.NotifyAboutNewBlogComments) { _workflowMessageService.SendBlogCommentNotificationMessage(comment, _localizationSettings.DefaultAdminLanguageId); } //activity log _customerActivityService.InsertActivity("PublicStore.AddBlogComment", _localizationService.GetResource("ActivityLog.PublicStore.AddBlogComment")); //The text boxes should be cleared after a comment has been posted //That' why we reload the page TempData["nop.blog.addcomment.result"] = _localizationService.GetResource("Blog.Comments.SuccessfullyAdded"); return(RedirectToRoute("BlogPost", new { SeName = blogPost.GetSeName(blogPost.LanguageId, ensureTwoPublishedLanguages: false) })); } //If we got this far, something failed, redisplay form PrepareBlogPostModel(model, blogPost, true); return(View(model)); }