Ejemplo n.º 1
0
        /// <summary>
        /// Prepare the contact contributor model
        /// </summary>
        /// <param name="model">Contact contributor model</param>
        /// <param name="contributor">Contributor</param>
        /// <param name="excludeProperties">Whether to exclude populating of model properties from the entity</param>
        /// <returns>Contact contributor model</returns>
        public virtual ContactContributorModel PrepareContactContributorModel(ContactContributorModel model, Contributor contributor, bool excludeProperties)
        {
            if (model == null)
            {
                throw new ArgumentNullException("model");
            }

            if (contributor == null)
            {
                throw new ArgumentNullException("contributor");
            }

            if (!excludeProperties)
            {
                model.Email    = _workContext.CurrentCustomer.Email;
                model.FullName = _workContext.CurrentCustomer.GetFullName();
            }

            model.SubjectEnabled  = _commonSettings.SubjectFieldOnContactUsForm;
            model.DisplayCaptcha  = _captchaSettings.Enabled && _captchaSettings.ShowOnContactUsPage;
            model.ContributorId   = contributor.Id;
            model.ContributorName = contributor.GetLocalized(x => x.Name);

            return(model);
        }
Ejemplo n.º 2
0
        public virtual ActionResult ContactContributor(int contributorId)
        {
            if (!_contributorSettings.AllowCustomersToContactContributors)
            {
                return(RedirectToRoute("HomePage"));
            }

            var contributor = _contributorService.GetContributorById(contributorId);

            if (contributor == null || !contributor.Active || contributor.Deleted)
            {
                return(RedirectToRoute("HomePage"));
            }

            var model = new ContactContributorModel();

            model = _commonModelFactory.PrepareContactContributorModel(model, contributor, false);
            return(View(model));
        }
Ejemplo n.º 3
0
        public virtual ActionResult ContactContributorSend(ContactContributorModel model, bool captchaValid)
        {
            if (!_contributorSettings.AllowCustomersToContactContributors)
            {
                return(RedirectToRoute("HomePage"));
            }

            var contributor = _contributorService.GetContributorById(model.ContributorId);

            if (contributor == null || !contributor.Active || contributor.Deleted)
            {
                return(RedirectToRoute("HomePage"));
            }

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

            model = _commonModelFactory.PrepareContactContributorModel(model, contributor, true);

            if (ModelState.IsValid)
            {
                string subject = _commonSettings.SubjectFieldOnContactUsForm ? model.Subject : null;
                string body    = Core.Html.HtmlHelper.FormatText(model.Enquiry, false, true, false, false, false, false);

                _workflowMessageService.SendContactContributorMessage(contributor, _workContext.WorkingLanguage.Id,
                                                                      model.Email.Trim(), model.FullName, subject, body);

                model.SuccessfullySent = true;
                model.Result           = _localizationService.GetResource("ContactContributor.YourEnquiryHasBeenSent");

                return(View(model));
            }

            return(View(model));
        }