/// <summary> /// Adds the customer address. /// </summary> /// <param name="orderAddress">The order address.</param> /// <returns></returns> private static void AddCustomerAddress(OrderAddress orderAddress) { var contact = CustomerContext.Current.GetContactById(SecurityContext.Current.CurrentUserId); if (contact == null) { return; } var address = contact.ContactAddresses.FirstOrDefault(x => x.Name.Equals(orderAddress.Name)); if (address == null) { address = CustomerAddress.CreateForApplication(AppContext.Current.ApplicationId); address.AddressType = CustomerAddressTypeEnum.Public; address.CreatorId = SecurityContext.Current.CurrentUserId; address.Created = DateTime.Now.ToUniversalTime(); address.PrimaryKeyId = BusinessManager.Create(address); if (!contact.ContactAddresses.Any(x => x.PrimaryKeyId == address.PrimaryKeyId)) { address.ContactId = contact.PrimaryKeyId; } } address.ModifierId = SecurityContext.Current.CurrentUserId; address.Modified = DateTime.Now.ToUniversalTime(); OrderAddress.CopyOrderAddressToCustomerAddress(orderAddress, address); BusinessManager.Update(address); }
public CustomerContact CreateCustomer(string email, string password, string phone, OrderAddress billingAddress, OrderAddress shippingAddress, bool hasPassword, Action <MembershipCreateStatus> userCreationFailed) { MembershipCreateStatus createStatus; var user = Membership.CreateUser(email, password, email, null, null, true, out createStatus); switch (createStatus) { case MembershipCreateStatus.Success: Roles.AddUserToRole(user.UserName, Mediachase.Commerce.Core.AppRoles.EveryoneRole); Roles.AddUserToRole(user.UserName, Mediachase.Commerce.Core.AppRoles.RegisteredRole); var customer = CustomerContext.Current.GetContactForUser(user); customer.FirstName = billingAddress.FirstName; customer.LastName = billingAddress.LastName; customer.FullName = string.Format("{0} {1}", customer.FirstName, customer.LastName); customer.SetPhoneNumber(phone); customer.SetHasPassword(hasPassword); var customerBillingAddress = CustomerAddress.CreateForApplication(Mediachase.Commerce.Core.AppContext.Current.ApplicationId); OrderAddress.CopyOrderAddressToCustomerAddress(billingAddress, customerBillingAddress); customer.AddContactAddress(customerBillingAddress); customer.SaveChanges(); customer.PreferredBillingAddressId = customerBillingAddress.AddressId; customerBillingAddress.Name = string.Format("{0}, {1} {2}", customerBillingAddress.Line1, customerBillingAddress.PostalCode, customerBillingAddress.City); CheckCountryCode(customerBillingAddress); BusinessManager.Update(customerBillingAddress); customer.SaveChanges(); var customerShippingAddress = CustomerAddress.CreateForApplication(Mediachase.Commerce.Core.AppContext.Current.ApplicationId); OrderAddress.CopyOrderAddressToCustomerAddress(shippingAddress, customerShippingAddress); customer.AddContactAddress(customerShippingAddress); customer.SaveChanges(); customer.PreferredShippingAddressId = customerShippingAddress.AddressId; customerShippingAddress.Name = string.Format("{0}, {1} {2}", customerShippingAddress.Line1, customerShippingAddress.PostalCode, customerShippingAddress.City); CheckCountryCode(customerShippingAddress); BusinessManager.Update(customerShippingAddress); customer.SaveChanges(); return(customer); default: userCreationFailed(createStatus); break; } return(null); }