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); }
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()); }