/// <inheritDoc/> public virtual bool Unsubscribe(UnsubscribeFormViewModel viewModel, out string error) { error = string.Empty; var newslettersManager = NewslettersManager.GetManager(this.ProviderName); string email = viewModel.Email.ToLower(); IQueryable <Subscriber> subscribers = newslettersManager.GetSubscribers().Where(s => s.Email == email); if (subscribers.Count() == 0) { error = string.Format(Res.Get <UnsubscribeFormResources>().YouDontBelongToTheMailingList, email); return(false); } var hasUnsubscribedUser = false; foreach (Subscriber subscriber in subscribers) { if (subscriber != null) { var isUnsubscribed = newslettersManager.Unsubscribe(subscriber, this.ListId); hasUnsubscribedUser = hasUnsubscribedUser || isUnsubscribed; } } if (hasUnsubscribedUser) { newslettersManager.SaveChanges(); if (this.SuccessfullySubmittedForm == SuccessfullySubmittedForm.OpenSpecificPage) { viewModel.RedirectPageUrl = HyperLinkHelpers.GetFullPageUrl(this.PageId); } this.Message = string.Format(Res.Get <UnsubscribeFormResources>().UnsubscribedFromMailingListSuccessMessage, email); return(true); } else { error = string.Format(Res.Get <UnsubscribeFormResources>().YouDontBelongToTheMailingList, email); return(false); } }
/// <inheritDoc/> public UnsubscribeFormViewModel CreateViewModel() { var viewModel = new UnsubscribeFormViewModel(); viewModel.Message = this.message; if (this.UnsubscribeMode == UnsubscribeMode.Link) { viewModel.CssClass = this.LinkCssClass; } else { viewModel.WidgetTitle = this.WidgetTitle; viewModel.WidgetDescription = this.WidgetDescription; viewModel.CssClass = this.EmailAddressCssClass; } return(viewModel); }
/// <inheritDoc/> public virtual bool Unsubscribe(UnsubscribeFormViewModel viewModel, out string error) { error = string.Empty; var newslettersManager = NewslettersManager.GetManager(this.ProviderName); string email = viewModel.Email.ToLower(); IQueryable<Subscriber> subscribers = newslettersManager.GetSubscribers().Where(s => s.Email == email); if (subscribers.Count() == 0) { error = string.Format(Res.Get<UnsubscribeFormResources>().YouDontBelongToTheMailingList, email); return false; } var hasUnsubscribedUser = false; foreach (Subscriber subscriber in subscribers) { if (subscriber != null) { var isUnsubscribed = newslettersManager.Unsubscribe(subscriber, this.ListId); hasUnsubscribedUser = hasUnsubscribedUser || isUnsubscribed; } } if (hasUnsubscribedUser) { newslettersManager.SaveChanges(); if (this.SuccessfullySubmittedForm == SuccessfullySubmittedForm.OpenSpecificPage) { viewModel.RedirectPageUrl = HyperLinkHelpers.GetFullPageUrl(this.PageId); } this.Message = string.Format(Res.Get<UnsubscribeFormResources>().UnsubscribedFromMailingListSuccessMessage, email); return true; } else { error = string.Format(Res.Get<UnsubscribeFormResources>().YouDontBelongToTheMailingList, email); return false; } }
/// <inheritDoc/> public UnsubscribeFormViewModel CreateViewModel() { var viewModel = new UnsubscribeFormViewModel(); viewModel.Message = this.message; if (this.UnsubscribeMode == UnsubscribeMode.Link) { viewModel.CssClass = this.LinkCssClass; } else { viewModel.WidgetTitle = this.WidgetTitle; viewModel.WidgetDescription = this.WidgetDescription; viewModel.CssClass = this.EmailAddressCssClass; } return viewModel; }
public bool Unsubscribe(UnsubscribeFormViewModel viewModel, out string error) { error = string.Empty; return true; }
public ActionResult Index(UnsubscribeFormViewModel viewModel) { if (this.ModelState.IsValid && this.Model.ListId != Guid.Empty) { string error; bool isSucceeded = this.Model.Unsubscribe(viewModel, out error); this.ViewBag.Error = error; this.ViewBag.IsSucceded = isSucceeded; if (isSucceeded) { if (this.Model.SuccessfullySubmittedForm == SuccessfullySubmittedForm.OpenSpecificPage && !string.IsNullOrEmpty(viewModel.RedirectPageUrl)) { return this.Redirect(viewModel.RedirectPageUrl); } this.ModelState.Clear(); } } viewModel = this.Model.CreateViewModel(); var fullTemplateName = this.emailAddressTemplateNamePrefix + this.EmailAddressTemplateName; return this.View(fullTemplateName, viewModel); }