예제 #1
0
        public virtual ActionResult Subscrib()
        {
            var model = new SubscribRequestModel();

            if (IsPartialNeeded)
            {
                return(PartialView(Views._Subscrib,
                                   model));
            }

            return(View(Views.Subscrib,
                        model));
        }
예제 #2
0
        public virtual ActionResult Subscrib(SubscribRequestModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(Views.Subscrib,
                            model));
            }

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

            if (subscription != null)
            {
                if (subscription.IsConfirmed)
                {
                    ModelState.AddModelError("Email",
                                             Resources.Messages_Newsletters_Subscrib_DuplicateEmail);
                    return(View(Views.Subscrib,
                                model));
                }
            }
            else
            {
                subscription = model.To <SubscribRequestModel, Subscription>();

                _subscriptionService.Save(subscription);
            }

            var message = _newslettersMailer.PrepareSubscribConfirmation(subscription);

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

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

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