public virtual ActionResult UnSubscrib()
        {
            var model = new UnSubscribRequestModel();

            return(View(Views.UnSubscrib,
                        model));
        }
        public virtual ActionResult UnSubscrib(UnSubscribRequestModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(Views.UnSubscrib,
                            model));
            }

            var subscription = _subscriptionService.Get(model.Email);

            if (subscription == null)
            {
                ModelState.AddModelError("Email",
                                         Resources.Messages_Newsletters_UnSubscrib_NonExistentEmail);
                return(View(Views.UnSubscrib,
                            model));
            }

            if (subscription.IsCancelled)
            {
                ModelState.AddModelError("Email",
                                         Resources.Messages_Newsletters_UnSubscribConfirm_AlreadyConfirmed);
                return(View(Views.UnSubscrib,
                            model));
            }

            var message = _newslettersMailer.PrepareUnSubscribConfirmation(subscription);

            _queuedMailService.Save(message,
                                    CurrentConfig.Mails.NoReply.Id);

            subscription.IsPending = true;
            _subscriptionService.Save(subscription);

            SuccessNotification(string.Format(Resources.Messages_Newsletters_UnSubscrib_ConfirmationEmailSent,
                                              subscription.Email));
            return(RedirectToThen());
        }