private bool UpdateAddress(bool validate) { // NEED TO REGISTER USER if (AbleContext.Current.User.IsAnonymous) { if (CreateNewAccountPanel.Visible) { if (!CreateNewAccount()) { return(false); } else { CreateNewAccountPanel.Visible = false; } } else { // VALIDATE EMAIL, IF EMAIL IS ALREADY REGISTERED, ASK FOR LOGIN string newEmail = StringHelper.StripHtml(BillToEmail.Text); if (UserDataSource.IsEmailRegistered(newEmail)) { InvalidRegistration.IsValid = false; InvalidRegistration.ErrorMessage = "The email address you have provided is already registered. Please sign in to access your account."; return(false); } // ANONYMOUS USER SELECTING GUEST CHECKOUT, CREATE TEMPORARY ACCOUNT User oldUser = AbleContext.Current.User; string newUserName = "******" + Guid.NewGuid().ToString("N") + "@domain.xyz"; string newPassword = Guid.NewGuid().ToString("N"); MembershipCreateStatus createStatus; User newUser = UserDataSource.CreateUser(newUserName, newEmail, newPassword, string.Empty, string.Empty, true, 0, out createStatus); // IF THE CREATE FAILS, IGNORE AND CONTINUE CREATING THE ORDER if (createStatus == MembershipCreateStatus.Success) { // CHANGE THE NAME AND EMAIL TO SOMETHING MORE FRIENDLY THAN GUID newUser.UserName = "******" + newUser.Id.ToString() + "@domain.xyz"; newUser.Save(); CommerceBuilder.Users.User.Migrate(oldUser, newUser, true, true); AbleContext.Current.User = newUser; FormsAuthentication.SetAuthCookie(newUser.UserName, false); } } } // MAILING LIST SIGNUP if (EmailLists.Visible && EmailLists.Items.Count > 0) { string email = AbleContext.Current.User.Email; int listIndex = 0; IList <EmailList> emailLists = GetPublicEmailLists(); if (emailLists != null && emailLists.Count > 0) { foreach (ListViewDataItem item in EmailLists.Items) { EmailList list = emailLists[listIndex]; CheckBox selected = (CheckBox)item.FindControl("Selected"); if (selected != null) { if (selected.Checked) { EmailListSignup signup = EmailListSignupDataSource.Load(list.Id, email); if (signup == null || signup.SignupDate < LocaleHelper.LocalNow.AddMinutes(-5)) { list.ProcessSignupRequest(email); } } else { list.RemoveMember(email); } } else { list.RemoveMember(email); } listIndex++; } } } string provinceName = string.Empty; if (ValidateProvince(out provinceName)) { Address address = AbleContext.Current.User.PrimaryAddress; string address1 = StringHelper.StripHtml(Address1.Text); string address2 = StringHelper.StripHtml(Address2.Text); string city = StringHelper.StripHtml(City.Text); string postColde = StringHelper.StripHtml(PostalCode.Text); if (address.Address1 != address1 || address.Address2 != address2 || address.City != city || address.Province != provinceName || address.PostalCode != postColde) { address.Validated = false; } address.FirstName = StringHelper.StripHtml(FirstName.Text); address.LastName = StringHelper.StripHtml(LastName.Text); address.Address1 = address1; address.Address2 = address2; address.Company = StringHelper.StripHtml(Company.Text); address.Email = trEmail.Visible ? StringHelper.StripHtml(BillToEmail.Text) : StringHelper.StripHtml(UserName.Text); address.City = city; address.Province = provinceName; address.PostalCode = postColde; address.CountryCode = Country.SelectedValue; address.Phone = StringHelper.StripHtml(Telephone.Text); address.Fax = StringHelper.StripHtml(Fax.Text); address.Residence = !IsBusinessAddress.Checked; address.Save(); if (validate && !address.Validated && _addressValidator != null) { AddressValidationResponse avr = _addressValidator.ValidateAddress(address); if (avr != null) { if (!avr.IsValid.HasValue || !avr.IsValid.Value) { ValidAddresses = avr.Addresses; if (ValidAddresses != null) { int index = 0; foreach (ValidAddress validAddress in ValidAddresses) { validAddress.Id = ++index; } ValidAddressesList.DataSource = ValidAddresses; ValidAddressesList.DataBind(); ValidAddressesPanel.Visible = true; ValidAddressesList.Items.Add(new ListItem("Use the address exactly as I entered it", "0")); ValidAddressesList.Items[0].Selected = true; if (ValidAddressesList.Items.Count > 1) { PHAddressFound.Visible = true; PHNoAddress.Visible = false; } else { PHAddressFound.Visible = false; PHNoAddress.Visible = true; } return(false); } } } } } else { Province2Invalid.IsValid = false; UpdateCountry(); return(false); } return(true); }
protected void Page_Load(object sender, EventArgs e) { string action = Request.QueryString["action"]; if (!string.IsNullOrEmpty(action)) { //DETERMINE THE ACTION action = action.ToLowerInvariant(); if (action == "remove") { //delete user from the list int emailListId = AlwaysConvert.ToInt(Request.QueryString["list"]); string email = Request.QueryString["email"]; string key = Request.QueryString["key"]; AbleContext.Current.Database.BeginTransaction(); EmailList list = EmailListDataSource.Load(emailListId); if ((list != null) && (email != null)) { string eluKey = string.Empty; EmailListUser elu = EmailListUserDataSource.Load(emailListId, email); if (elu != null) { eluKey = elu.SignupDate.ToString("MMddyyhhmmss"); } if (key == eluKey) { list.RemoveMember(email); phMessage.Controls.Add(new LiteralControl(string.Format(this.DeletedMessage, list.Name))); } } AbleContext.Current.Database.CommitTransaction(); } else if (action == "confirm") { //ADD USER TO LIST int emailListId = AlwaysConvert.ToInt(Request.QueryString["list"]); string email = Request.QueryString["email"]; string key = Request.QueryString["key"]; AbleContext.Current.Database.BeginTransaction(); EmailList list = EmailListDataSource.Load(emailListId); if ((list == null) || !ValidationHelper.IsValidEmail(email)) { Response.Redirect(AbleCommerce.Code.NavigationHelper.GetHomeUrl()); } EmailListSignup signup = EmailListSignupDataSource.Load(emailListId, email); if (signup != null) { if (key == signup.SignupKey) { signup.Activate(); //confirm user subscription phMessage.Controls.Add(new LiteralControl(string.Format(this.SubscribedMessage, list.Name))); } } else if (EmailListUserDataSource.Load(emailListId, email) != null) { //CHECK IF USER HAS ALREADY ACTIVATED //confirm user subscription phMessage.Controls.Add(new LiteralControl(string.Format(this.SubscribedMessage, list.Name))); } AbleContext.Current.Database.CommitTransaction(); } else if (action == "unsubrr") { int userId = AlwaysConvert.ToInt(Request.QueryString["uid"]); string email = Request.QueryString["email"]; if (string.IsNullOrEmpty(email)) { return; } CommerceBuilder.Users.User user = CommerceBuilder.Users.UserDataSource.Load(userId); if (user != null && email.ToLowerInvariant() == user.Email.ToLowerInvariant()) { user.Settings.OptOutReviewReminders = true; user.Save(); string message = "You have successfully unsubscribed from all future product review invitations. If you are a registered user, you may join again by logging into your account and updating your profile."; phMessage.Controls.Add(new LiteralControl(message)); } } } //IF RESPONSE IS EMPTY, REQUEST IS INVALID if (phMessage.Controls.Count == 0) { phMessage.Controls.Add(new LiteralControl(this.InvalidMessage)); } }