Exemple #1
0
        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));
        }
Exemple #2
0
        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));
        }