Example #1
0
        public ActionResult Index(FrontEndCmsPage page, string k)
        {
            FrontEndSubscriptionRegister frontEndSubscriptionRegister = new FrontEndSubscriptionRegister()
            {
                LangugeCode = page.LanguageCode
            };

            ViewBag.IsActivationPage = false;
            if (k.IsNotEmptyOrWhiteSpace())
            {
                ViewBag.IsActivationPage = true;
                Subscriptions subscriptions = new Subscriptions();
                int?          result        = subscriptions.ActivativateSubscription(k);
                switch (result)
                {
                case 0:
                    Subscription subscription = subscriptions.GetSubscriptionByActivationKey(k);

                    GlobalConfiguration globalConfiguration = new GlobalConfigurations().GetGlobalConfiguration();

                    CultureInfoHelper.ForceBackEndLanguage();

                    string subject = Resources.Strings_Subscription.EmailSubscriptionAddedSubject.Replace("{$Url}", globalConfiguration.DomainName.ToUrl());
                    string body    = Resources.Strings_Subscription.EmailSubscriptionAddedBody
                                     .Replace("{$Url}", globalConfiguration.DomainName.ToUrl())
                                     .Replace("{$subscriptionEmail}", subscription.Email)
                                     .Replace("{$ipAddress}", Request.UserHostAddress);

                    CultureInfoHelper.RestoreFrontEndLanguage();

                    EmailHelper email = new EmailHelper(globalConfiguration.NotificationEmail, globalConfiguration.NotificationEmail, subject, body);
                    email.Send();

                    ViewBag.ActivationResult = Resources.Strings_Subscription.ActivationKeySuccess;
                    break;

                case 2:
                    ViewBag.ActivationResult = Resources.Strings_Subscription.ActivationKeyInvalid;
                    break;

                case 3:
                    ViewBag.ActivationResult = Resources.Strings_Subscription.ActivationKeyAlreadyUsed;
                    break;

                default:
                    ViewBag.ActivationResult = Resources.Strings.UnexpectedError;
                    break;
                }
            }

            return(View(frontEndSubscriptionRegister));
        }
Example #2
0
        public ActionResult Index(FrontEndCmsPage page, FrontEndSubscriptionRegister frontEndSubscriptionRegister)
        {
            ViewBag.IsActivationPage = false;
            if (ModelState.IsValidOrRefresh())
            {
                if (frontEndSubscriptionRegister.Notes.IsEmpty()) //Honey pot to avoid spammers
                {
                    GlobalConfiguration globalConfiguration = new GlobalConfigurations().GetGlobalConfiguration();

                    //Add the subscription to the database and generate the {$VerificationUrl}
                    string        ActivationKey = DateTime.Now.Ticks.ToBase36() + Session.SessionID;
                    Subscriptions subscriptions = new Subscriptions();
                    int?          result        = subscriptions.Add(frontEndSubscriptionRegister.Email,
                                                                    frontEndSubscriptionRegister.Password,
                                                                    frontEndSubscriptionRegister.FirstName,
                                                                    frontEndSubscriptionRegister.LastName,
                                                                    frontEndSubscriptionRegister.Birthdate.ToDateTime(),
                                                                    frontEndSubscriptionRegister.PhoneNumber,
                                                                    frontEndSubscriptionRegister.Address,
                                                                    frontEndSubscriptionRegister.City,
                                                                    frontEndSubscriptionRegister.PostCode,
                                                                    frontEndSubscriptionRegister.CountryCode,
                                                                    1, //Not verified
                                                                    frontEndSubscriptionRegister.WantsNewsletter,
                                                                    DateTime.Now,
                                                                    Request.UserHostAddress,
                                                                    ActivationKey,
                                                                    null);
                    switch (result)
                    {
                    case 0:
                        //Send the email to the subscriber to confirm his identity
                        string subject = Resources.Strings_Subscription.EmailVerifyAccountSubject.Replace("{$SiteName}", globalConfiguration.SiteName);
                        string body    = Resources.Strings_Subscription.EmailVerifyAccountBody
                                         .Replace("{$FirstName}", frontEndSubscriptionRegister.FirstName)
                                         .Replace("{$SiteName}", globalConfiguration.SiteName)
                                         .Replace("{$VerificationUrl}", globalConfiguration.DomainName.ToUrl() + page.LanguageCode + "/register?k=" + ActivationKey)
                                         .Replace("{$Url}", globalConfiguration.DomainName.ToUrl());

                        EmailHelper email = new EmailHelper("subscription-activation@" + globalConfiguration.DomainName, frontEndSubscriptionRegister.Email, subject, body);
                        if (email.Send())
                        {
                            ModelState.AddResult(ViewData, ModelStateResult.Success, Resources.Strings_Subscription.Thanks);
                            ViewData.IsFormVisible(false);
                        }
                        else
                        {
                            subscriptions.Delete(frontEndSubscriptionRegister.Email);
                            ModelState.AddResult(ViewData, ModelStateResult.Error, Resources.Strings.UnexpectedError + " (Email)");
                        }

                        break;

                    case 2:
                        ModelState.AddResult(ViewData, ModelStateResult.Error, Resources.Strings.EmailAlreadyExists);
                        break;

                    default:
                        ModelState.AddResult(ViewData, ModelStateResult.Error, Resources.Strings.UnexpectedError + " (Database)");
                        break;
                    }
                }
                else
                {
                    ModelState.AddResult(ViewData, ModelStateResult.Success, Resources.Strings_Subscription.Thanks);
                    ViewData.IsFormVisible(false);
                }
            }

            return(View(frontEndSubscriptionRegister));
        }