Esempio n. 1
0
        public static string GenerateRegistrationMessage(string firstName, string email)
        {
            var model = new RegistrationEmailModel
            {
                FirstName = firstName
            };

            var messageData = new RegistrationEmailMessageData
            {
                Subject = "Registration",
                Sender  = EmailSender,
                Model   = model
            };

            var data = new RegistrationEmailData
            {
                EmailAddress = email,
                MessageData  = messageData
            };

            var registrationEmail = new RegistrationEmail
            {
                Data = data
            };

            var message = JsonConvert.SerializeObject(registrationEmail);

            return(MailType + message);
        }
Esempio n. 2
0
        public ActionResult Register(VendrRegisterDto model)
        {
            // We don't use usernames, instead we use the email address to login
            // but given a username can't be changed, we don't just use the email
            // as the username, instead we set it to something random instead.
            var username = Guid.NewGuid().ToString("N");

            // Create the member (unapproved)
            var member = Membership.CreateUser(username, model.Password, model.Email, null, null, false, out MembershipCreateStatus createStatus);

            if (createStatus != MembershipCreateStatus.Success)
            {
                TempData["VendrPortalErrorMessage"] = "Unable to register member";

                return(RedirectToCurrentUmbracoPage());
            }

            // Assign the member to the role
            Roles.AddUserToRole(username, "Vendr Portal Member");

            // Store a verification token in key value table
            var key  = $"VendrPortal.Register+{model.Email.ToLower().Trim().GenerateHash()}";
            var code = Guid.NewGuid().ToString("N").ToUrlBase64();

            KeyValueStoreHelper.AddOrUpdate(key, code);

            // TODO: Raise event to allow adding extra URL params

            var emailModel = new RegistrationEmailModel
            {
                Email = model.Email,
                Code  = code,
                ConfirmRegistrationUrl = Url.SurfaceAction <VendrPortalAuthSurfaceController>("ConfirmRegistration", new
                {
                    email = model.Email,
                    code  = code
                })
            };

            //var emailTemplate = _vendrApi.GetEmailTemplate(CurrentPage.GetPortalStore().Id, "confirmRegistration");

            //try
            //{
            //    _vendrApi.SendEmail(emailTemplate, emailModel, model.Email, Thread.CurrentThread.CurrentCulture.Name);
            //}
            //catch (Exception ex)
            //{
            //    _vendrApi.Log.Error<VendrPortalMembershipSurfaceController>(ex, "Error sending email {EmailAlias} to {EmailAddress}", emailTemplate.Alias, model.Email);
            //}

            // TODO: Send confirm registration email
            TempData["VendrPortalStatus"]           = "EmailSent";
            TempData["VendrPortalResetPasswordUrl"] = emailModel.ConfirmRegistrationUrl;

            return(RedirectToCurrentUmbracoPage());
        }