public async Task <ActionResult> Register(CustomerAddressTelephoneViewModel model) { if (ModelState.IsValid) { var user = new ApplicationUser { UserName = model.RegisterViewModel.Email, Email = model.RegisterViewModel.Email }; var result = await UserManager.CreateAsync(user, model.RegisterViewModel.Password); if (result.Succeeded) { await SignInManager.SignInAsync(user, isPersistent : false, rememberBrowser : false); var address = model.Address; db.Addresses.Add(address); db.SaveChanges(); var telephoneNumber = model.TelephoneNumber; db.TelephoneNumbers.Add(telephoneNumber); db.SaveChanges(); // Use the role manager to get the "User" role from database var roleManager = new RoleManager <IdentityRole>(new RoleStore <IdentityRole>(db)); var role = roleManager.FindByName("User"); // Use the user manager to assign the "User" role var userManager = new UserManager <ApplicationUser>(new UserStore <ApplicationUser>(db)); userManager.AddToRole(user.Id, role.Name); var customer = model.Customer; customer.AddressID = address.ID; customer.TelephoneNumberID = telephoneNumber.ID; customer.AspNetUsersId = user.Id; db.Customers.Add(customer); db.SaveChanges(); MigrateShoppingCart(model.RegisterViewModel.Email); return(RedirectToAction("LogOffOnStateChange", "Account")); } AddErrors(result); } // If we got this far, something failed, redisplay form return(View(model)); }
public ActionResult Register() { var cities = db.Cities.ToList(); var regions = db.Regions.ToList(); var countries = db.Countries.ToList(); var viewModel = new CustomerAddressTelephoneViewModel() { Customer = new Customer(), Address = new Address(), Cities = cities, Regions = regions, Countries = countries, TelephoneNumber = new TelephoneNumber(), RegisterViewModel = new RegisterViewModel() }; return(View("Register", viewModel)); }