Exemplo n.º 1
0
        ////[PublicAntiForgery]
        ////[CaptchaValidator]
        public virtual IActionResult AskQuestion(ProductAskQuestionModel model, bool captchaValid)
        {
            var product = _productService.GetProductById(model.ProductId);

            if (product == null || !product.Published || !_catalogSettings.AskQuestionEnabled)
            {
                //return HttpNotFound();
                throw new Exception("ProductController > AskQuestion()");
            }

            // validate CAPTCHA
            if (_captchaSettings.Enabled && _captchaSettings.ShowOnAskQuestionPage && !captchaValid)
            {
                ModelState.AddModelError("", _captchaSettings.GetWrongCaptchaMessage(_localizationService));
            }

            if (ModelState.IsValid)
            {
                // email
                _productWebService.SendProductAskQuestionMessage(product, model);

                //activity log
                _customerActivityService.InsertActivity("PublicStore.AskQuestion", _workContext.CurrentCustomer.Id, _localizationService.GetResource("ActivityLog.PublicStore.AskQuestion"));

                model.SuccessfullySent = true;
                model.ProductSeName    = product.GetSeName();
                model.ProductName      = product.GetLocalized(x => x.Name);
                model.Result           = _localizationService.GetResource("Products.AskQuestion.SuccessfullySent");
                return(View(model));
            }

            // If we got this far, something failed, redisplay form
            var customer = _workContext.CurrentCustomer;

            model.Id             = product.Id;
            model.ProductName    = product.GetLocalized(x => x.Name);
            model.ProductSeName  = product.GetSeName();
            model.DisplayCaptcha = _captchaSettings.Enabled && _captchaSettings.ShowOnAskQuestionPage;
            return(View(model));
        }