public async Task <IActionResult> UpdateCustomerProfile() { var loggedUser = await _userManager.FindByNameAsync(User.Identity.Name); CustomerProfile loggedProfile = _customerProfileRepo.GetSingle(p => p.UserId == loggedUser.Id); UpdateCustomerProfileVM vm = new UpdateCustomerProfileVM(); vm.Email = loggedUser.Email; if (loggedProfile != null) { vm.FirstName = loggedProfile.FirstName; vm.LastName = loggedProfile.LastName; vm.Email = loggedProfile.Email; vm.Phone = loggedProfile.PhoneNumber; } return(View(vm)); }
public async Task <IActionResult> UpdateCustomerProfile(UpdateCustomerProfileVM vm) { if (ModelState.IsValid) { //who logged in var loggedUser = await _userManager.FindByNameAsync(User.Identity.Name); //check if there is a profile already CustomerProfile loggedProfile = _customerProfileRepo.GetSingle(p => p.UserId == loggedUser.Id); //create or update if (loggedProfile != null) { //update the loggedProfile loggedProfile.FirstName = vm.FirstName; loggedProfile.LastName = vm.LastName; loggedUser.Email = vm.Email; loggedUser.PhoneNumber = vm.Phone; //save the update to the database _customerProfileRepo.Update(loggedProfile); await _userManager.SetEmailAsync(loggedUser, vm.Email); } else { //create new profile loggedProfile = new CustomerProfile { UserId = loggedUser.Id, FirstName = vm.FirstName, LastName = vm.LastName, Email = vm.Email, PhoneNumber = loggedUser.PhoneNumber }; //save the new profile to database _customerProfileRepo.Create(loggedProfile); await _userManager.SetEmailAsync(loggedUser, vm.Email); } return(RedirectToAction("Index", "Home")); } return(View(vm)); }