public ActionResult Create() { if (!_permissionService.Authorize(StandardPermissionProvider.ManageCampaigns)) return AccessDeniedView(); var model = new CampaignModel(); model.AllowedTokens = FormatTokens(_messageTokenProvider.GetListOfCampaignAllowedTokens()); return View(model); }
public ActionResult Create(CampaignModel model, bool continueEditing) { if (!_permissionService.Authorize(StandardPermissionProvider.ManageCampaigns)) return AccessDeniedView(); if (ModelState.IsValid) { var campaign = model.ToEntity(); campaign.CreatedOnUtc = DateTime.UtcNow; _campaignService.InsertCampaign(campaign); SuccessNotification(_localizationService.GetResource("Admin.Promotions.Campaigns.Added")); return continueEditing ? RedirectToAction("Edit", new { id = campaign.Id }) : RedirectToAction("List"); } //If we got this far, something failed, redisplay form model.AllowedTokens = FormatTokens(_messageTokenProvider.GetListOfCampaignAllowedTokens()); return View(model); }
protected virtual void PrepareStoresModel(CampaignModel model) { if (model == null) throw new ArgumentNullException("model"); model.AvailableStores.Add(new SelectListItem { Text = _localizationService.GetResource("Admin.Common.All"), Value = "0" }); var stores = _storeService.GetAllStores(); foreach (var store in stores) { model.AvailableStores.Add(new SelectListItem { Text = store.Name, Value = store.Id.ToString() }); } }
public ActionResult SendTestEmail(CampaignModel model) { if (!_permissionService.Authorize(StandardPermissionProvider.ManageCampaigns)) return AccessDeniedView(); var campaign = _campaignService.GetCampaignById(model.Id); if (campaign == null) throw new ArgumentException("No campaign found with the specified id"); model.AllowedTokens = FormatTokens(_messageTokenProvider.GetListOfCampaignAllowedTokens()); try { var emailAccount = _emailAccountService.GetEmailAccountById(_emailAccountSettings.DefaultEmailAccountId); if (emailAccount == null) throw new NopException("Email account could not be loaded"); _campaignService.SendCampaign(campaign, emailAccount, model.TestEmail); SuccessNotification(_localizationService.GetResource("Admin.Promotions.Campaigns.TestEmailSentToCustomers"), false); return View(model); } catch (Exception exc) { ErrorNotification(exc, false); } //If we got this far, something failed, redisplay form return View(model); }
public ActionResult Edit(CampaignModel model, bool continueEditing) { if (!_permissionService.Authorize(StandardPermissionProvider.ManageCampaigns)) return AccessDeniedView(); var campaign = _campaignService.GetCampaignById(model.Id); if (campaign == null) throw new ArgumentException("No campaign found with the specified id"); if (ModelState.IsValid) { campaign = model.ToEntity(campaign); _campaignService.UpdateCampaign(campaign); SuccessNotification(_localizationService.GetResource("Admin.Promotions.Campaigns.Updated")); return continueEditing ? RedirectToAction("Edit", new { id = campaign.Id }) : RedirectToAction("List"); } //If we got this far, something failed, redisplay form model.AllowedTokens = FormatTokens(_messageTokenProvider.GetListOfCampaignAllowedTokens()); return View(model); }
public ActionResult SendTestEmail(CampaignModel model) { if (!_permissionService.Authorize(StandardPermissionProvider.ManageCampaigns)) return AccessDeniedView(); var campaign = _campaignService.GetCampaignById(model.Id); if (campaign == null) //No campaign found with the specified id return RedirectToAction("List"); model.AllowedTokens = FormatTokens(_messageTokenProvider.GetListOfCampaignAllowedTokens()); try { var emailAccount = _emailAccountService.GetEmailAccountById(_emailAccountSettings.DefaultEmailAccountId); if (emailAccount == null) throw new NopException("Email account could not be loaded"); var subscription = _newsLetterSubscriptionService.GetNewsLetterSubscriptionByEmail(model.TestEmail); if (subscription != null) { //there's a subscription. let's use it var subscriptions = new List<NewsLetterSubscription>(); subscriptions.Add(subscription); _campaignService.SendCampaign(campaign, emailAccount, subscriptions); } else { //no subscription found _campaignService.SendCampaign(campaign, emailAccount, model.TestEmail); } SuccessNotification(_localizationService.GetResource("Admin.Promotions.Campaigns.TestEmailSentToCustomers"), false); return View(model); } catch (Exception exc) { ErrorNotification(exc, false); } //If we got this far, something failed, redisplay form return View(model); }
public ActionResult SendMassEmail(CampaignModel model) { if (!_permissionService.Authorize(StandardPermissionProvider.ManageCampaigns)) return AccessDeniedView(); var campaign = _campaignService.GetCampaignById(model.Id); if (campaign == null) //No campaign found with the specified id return RedirectToAction("List"); model.AllowedTokens = FormatTokens(_messageTokenProvider.GetListOfCampaignAllowedTokens()); try { var emailAccount = _emailAccountService.GetEmailAccountById(_emailAccountSettings.DefaultEmailAccountId); if (emailAccount == null) throw new NopException("Email account could not be loaded"); var subscriptions = _newsLetterSubscriptionService.GetAllNewsLetterSubscriptions(null, 0 ,int.MaxValue, false); var totalEmailsSent = _campaignService.SendCampaign(campaign, emailAccount, subscriptions); SuccessNotification(string.Format(_localizationService.GetResource("Admin.Promotions.Campaigns.MassEmailSentToCustomers"), totalEmailsSent), false); return View(model); } catch (Exception exc) { ErrorNotification(exc, false); } //If we got this far, something failed, redisplay form return View(model); }
public ActionResult Edit(CampaignModel model, bool continueEditing) { if (!_permissionService.Authorize(StandardPermissionProvider.ManageCampaigns)) return AccessDeniedView(); var campaign = _campaignService.GetCampaignById(model.Id); if (campaign == null) //No campaign found with the specified id return RedirectToAction("List"); if (ModelState.IsValid) { campaign = model.ToEntity(campaign); campaign.DontSendBeforeDateUtc = model.DontSendBeforeDate.HasValue ? (DateTime?)_dateTimeHelper.ConvertToUtcTime(model.DontSendBeforeDate.Value) : null; _campaignService.UpdateCampaign(campaign); SuccessNotification(_localizationService.GetResource("Admin.Promotions.Campaigns.Updated")); return continueEditing ? RedirectToAction("Edit", new { id = campaign.Id }) : RedirectToAction("List"); } //If we got this far, something failed, redisplay form model.AllowedTokens = FormatTokens(_messageTokenProvider.GetListOfCampaignAllowedTokens()); //stores PrepareStoresModel(model); //customer roles PrepareCustomerRolesModel(model); return View(model); }