public CustomerActionViewModelService(ICustomerService customerService,
                                       ICustomerTagService customerTagService,
                                       ILocalizationService localizationService,
                                       ICustomerActivityService customerActivityService,
                                       ICategoryService categoryService,
                                       IManufacturerService manufacturerService,
                                       IStoreService storeService,
                                       IVendorService vendorService,
                                       ICustomerActionService customerActionService,
                                       IProductAttributeService productAttributeService,
                                       IBannerService bannerService,
                                       IInteractiveFormService interactiveFormService,
                                       IMessageTemplateService messageTemplateService,
                                       IDateTimeHelper dateTimeHelper,
                                       IProductService productService)
 {
     _customerService         = customerService;
     _customerTagService      = customerTagService;
     _localizationService     = localizationService;
     _customerActivityService = customerActivityService;
     _categoryService         = categoryService;
     _manufacturerService     = manufacturerService;
     _storeService            = storeService;
     _vendorService           = vendorService;
     _customerActionService   = customerActionService;
     _bannerService           = bannerService;
     _interactiveFormService  = interactiveFormService;
     _messageTemplateService  = messageTemplateService;
     _dateTimeHelper          = dateTimeHelper;
     _productService          = productService;
 }
Beispiel #2
0
        public CommonViewComponent(
            ICommonWebService commonWebService,
            ILocalizationService localizationService,
            IWorkContext workContext,
            IStoreContext storeContext,
            ICustomerActivityService customerActivityService,
            ICustomerActionEventService customerActionEventService,
            IPopupService popupService,
            IInteractiveFormService interactiveFormService,

            StoreInformationSettings storeInformationSettings,
            CommonSettings commonSettings,
            ForumSettings forumSettings,
            LocalizationSettings localizationSettings,
            CaptchaSettings captchaSettings,
            VendorSettings vendorSettings
            )
        {
            this._commonWebService           = commonWebService;
            this._localizationService        = localizationService;
            this._workContext                = workContext;
            this._storeContext               = storeContext;
            this._customerActivityService    = customerActivityService;
            this._customerActionEventService = customerActionEventService;
            this._popupService               = popupService;
            this._interactiveFormService     = interactiveFormService;

            this._storeInformationSettings = storeInformationSettings;
            this._commonSettings           = commonSettings;
            this._forumSettings            = forumSettings;
            this._localizationSettings     = localizationSettings;
            this._captchaSettings          = captchaSettings;
            this._vendorSettings           = vendorSettings;
        }
 public CustomerActionViewModelService(ICustomerService customerService,
                                       IGroupService groupService,
                                       ICustomerTagService customerTagService,
                                       ITranslationService translationService,
                                       ICustomerActivityService customerActivityService,
                                       IStoreService storeService,
                                       IVendorService vendorService,
                                       ICustomerActionService customerActionService,
                                       IBannerService bannerService,
                                       IInteractiveFormService interactiveFormService,
                                       IMessageTemplateService messageTemplateService,
                                       IDateTimeService dateTimeService,
                                       IProductService productService)
 {
     _customerService         = customerService;
     _groupService            = groupService;
     _customerTagService      = customerTagService;
     _translationService      = translationService;
     _customerActivityService = customerActivityService;
     _storeService            = storeService;
     _vendorService           = vendorService;
     _customerActionService   = customerActionService;
     _bannerService           = bannerService;
     _interactiveFormService  = interactiveFormService;
     _messageTemplateService  = messageTemplateService;
     _dateTimeService         = dateTimeService;
     _productService          = productService;
 }
 public InteractiveFormController(IInteractiveFormService interactiveFormService,
                                  ILocalizationService localizationService,
                                  ILanguageService languageService,
                                  ICustomerActivityService customerActivityService,
                                  IEmailAccountService emailAccountService)
 {
     this._interactiveFormService  = interactiveFormService;
     this._localizationService     = localizationService;
     this._languageService         = languageService;
     this._customerActivityService = customerActivityService;
     this._emailAccountService     = emailAccountService;
 }
 public InteractiveFormController(IInteractiveFormService interactiveFormService,
                                  ITranslationService translationService,
                                  ILanguageService languageService,
                                  ICustomerActivityService customerActivityService,
                                  IEmailAccountService emailAccountService)
 {
     _interactiveFormService  = interactiveFormService;
     _translationService      = translationService;
     _languageService         = languageService;
     _customerActivityService = customerActivityService;
     _emailAccountService     = emailAccountService;
 }
Beispiel #6
0
 public PopupInteractiveCommandHandler(IInteractiveFormService interactiveFormService,
                                       ILocalizationService localizationService,
                                       IWorkContext workContext,
                                       IEmailAccountService emailAccountService,
                                       IQueuedEmailService queuedEmailService,
                                       ICustomerActivityService customerActivityService)
 {
     _interactiveFormService  = interactiveFormService;
     _localizationService     = localizationService;
     _workContext             = workContext;
     _emailAccountService     = emailAccountService;
     _queuedEmailService      = queuedEmailService;
     _customerActivityService = customerActivityService;
 }
Beispiel #7
0
 public PopupInteractiveCommandHandler(IInteractiveFormService interactiveFormService,
                                       ITranslationService translationService,
                                       IWorkContext workContext,
                                       IEmailAccountService emailAccountService,
                                       IQueuedEmailService queuedEmailService,
                                       ICustomerActivityService customerActivityService,
                                       IMediator mediator)
 {
     _interactiveFormService  = interactiveFormService;
     _translationService      = translationService;
     _workContext             = workContext;
     _emailAccountService     = emailAccountService;
     _queuedEmailService      = queuedEmailService;
     _customerActivityService = customerActivityService;
     _mediator = mediator;
 }
Beispiel #8
0
 public GetInteractiveFormHandler(IInteractiveFormService interactiveFormService, IWorkContext workContext)
 {
     _interactiveFormService = interactiveFormService;
     _workContext            = workContext;
 }
        public virtual async Task <IActionResult> PopupInteractiveForm(IFormCollection formCollection,
                                                                       [FromServices] IInteractiveFormService interactiveFormService, [FromServices] IQueuedEmailService queuedEmailService,
                                                                       [FromServices] IEmailAccountService emailAccountService)
        {
            var formid = formCollection["Id"];
            var form   = await interactiveFormService.GetFormById(formid);

            if (form == null)
            {
                return(Content(""));
            }
            string enquiry = "";

            foreach (var item in form.FormAttributes)
            {
                enquiry += string.Format("{0}: {1} <br />", item.Name, formCollection[item.SystemName]);

                if (!string.IsNullOrEmpty(item.RegexValidation))
                {
                    var   valuesStr = formCollection[item.SystemName];
                    Regex regex     = new Regex(item.RegexValidation);
                    Match match     = regex.Match(valuesStr);
                    if (!match.Success)
                    {
                        ModelState.AddModelError("", string.Format(_localizationService.GetResource("PopupInteractiveForm.Fields.Regex"), item.GetLocalized(a => a.Name, _workContext.WorkingLanguage.Id)));
                    }
                }
                if (item.IsRequired)
                {
                    var valuesStr = formCollection[item.SystemName];
                    if (string.IsNullOrEmpty(valuesStr))
                    {
                        ModelState.AddModelError("", string.Format(_localizationService.GetResource("PopupInteractiveForm.Fields.IsRequired"), item.GetLocalized(a => a.Name, _workContext.WorkingLanguage.Id)));
                    }
                }
                if (item.ValidationMinLength.HasValue)
                {
                    if (item.AttributeControlType == FormControlType.TextBox ||
                        item.AttributeControlType == FormControlType.MultilineTextbox)
                    {
                        var valuesStr         = formCollection[item.SystemName].ToString();
                        int enteredTextLength = String.IsNullOrEmpty(valuesStr) ? 0 : valuesStr.Length;
                        if (item.ValidationMinLength.Value > enteredTextLength)
                        {
                            ModelState.AddModelError("", string.Format(_localizationService.GetResource("PopupInteractiveForm.Fields.TextboxMinimumLength"), item.GetLocalized(a => a.Name, _workContext.WorkingLanguage.Id), item.ValidationMinLength.Value));
                        }
                    }
                }
                if (item.ValidationMaxLength.HasValue)
                {
                    if (item.AttributeControlType == FormControlType.TextBox ||
                        item.AttributeControlType == FormControlType.MultilineTextbox)
                    {
                        var valuesStr         = formCollection[item.SystemName].ToString();
                        int enteredTextLength = String.IsNullOrEmpty(valuesStr) ? 0 : valuesStr.Length;
                        if (item.ValidationMaxLength.Value < enteredTextLength)
                        {
                            ModelState.AddModelError("", string.Format(_localizationService.GetResource("PopupInteractiveForm.Fields.TextboxMaximumLength"), item.GetLocalized(a => a.Name, _workContext.WorkingLanguage.Id), item.ValidationMaxLength.Value));
                        }
                    }
                }
            }

            if (ModelState.Keys.Count() == 0)
            {
                var emailAccount = await emailAccountService.GetEmailAccountById(form.EmailAccountId);

                if (emailAccount == null)
                {
                    emailAccount = (await emailAccountService.GetAllEmailAccounts()).FirstOrDefault();
                }
                if (emailAccount == null)
                {
                    throw new Exception("No email account could be loaded");
                }

                string from;
                string fromName;
                string subject = string.Format(_localizationService.GetResource("PopupInteractiveForm.EmailForm"), form.Name);
                from     = emailAccount.Email;
                fromName = emailAccount.DisplayName;

                await queuedEmailService.InsertQueuedEmail(new QueuedEmail {
                    From           = from,
                    FromName       = fromName,
                    To             = emailAccount.Email,
                    ToName         = emailAccount.DisplayName,
                    Priority       = QueuedEmailPriority.High,
                    Subject        = subject,
                    Body           = enquiry,
                    CreatedOnUtc   = DateTime.UtcNow,
                    EmailAccountId = emailAccount.Id
                });

                //activity log
                await _customerActivityService.InsertActivity("PublicStore.InteractiveForm", form.Id, string.Format(_localizationService.GetResource("ActivityLog.PublicStore.InteractiveForm"), form.Name));
            }

            return(Json(new
            {
                success = ModelState.Keys.Count() == 0,
                errors = ModelState.Keys.SelectMany(k => ModelState[k].Errors)
                         .Select(m => m.ErrorMessage).ToArray()
            }));
        }