Exemplo n.º 1
0
        public async Task <IActionResult> Register(UserRegisterViewModel vm)
        {
            if (ModelState.IsValid)
            {
                var user = await _userManagerService.FindByNameAsync(vm.UserName);

                if (user != null)
                {
                    ModelState.AddModelError("", "User Already Exists");
                    return(View(vm));
                }
                user = new ApplicationUser
                {
                    UserName = vm.UserName,
                };

                user.Email       = vm.Email;
                user.PhoneNumber = vm.PhoneNumber;


                IdentityResult result = await _userManagerService.CreateAsync(user, vm.Password);

                if (result.Succeeded)
                {
                    IdentityResult result2 = await _userManagerService.AddToRoleAsync(user, "Customer");

                    UserDeliveryAddress address = new UserDeliveryAddress
                    {
                        DeliveryAddress   = vm.DeliveryAddress + " " + vm.DeliveryAddress2,
                        StateAddress      = vm.State,
                        PostalAddress     = vm.PostCode,
                        ApplicationUserId = user.Id
                    };

                    await _addressService.Create(address);

                    //go to Home/Index
                    return(RedirectToAction("Index", "Home"));
                }
                else
                {
                    //show errors
                    foreach (var error in result.Errors)
                    {
                        ModelState.AddModelError("", error.Description);
                        return(View(vm));
                    }
                }
            }
            return(View(vm));
        }
Exemplo n.º 2
0
        public async Task <IActionResult> AddNewAddress(UserAddressDetailsViewModel vm)
        {
            if (ModelState.IsValid)
            {
                var user = await _userManagerService.GetUserAsync(User);

                UserDeliveryAddress deliveryAddress = new UserDeliveryAddress
                {
                    ApplicationUserId = user.Id,
                    StateAddress      = vm.State,
                    PostalAddress     = vm.PostCode,
                    DeliveryAddress   = vm.DeliveryAddress
                };
                await _addressService.Create(deliveryAddress);

                return(RedirectToAction("Details", "User"));
            }
            return(View(vm));
        }