public async Task <IActionResult> UpdateProviderProfile() { var loggedUser = await _userManager.FindByNameAsync(User.Identity.Name); ProviderProfile loggedProfile = _providerProfileRepo.GetSingle(p => p.UserId == loggedUser.Id); UpdateProviderProfileVM vm = new UpdateProviderProfileVM(); if (loggedProfile != null) { vm.PhoneNumber = loggedProfile.PhoneNumber; } return(View(vm)); }
public async Task <IActionResult> UpdateProviderProfile(UpdateProviderProfileVM vm) { if (ModelState.IsValid) { //get logged user info var loggedUser = await _userManager.FindByNameAsync(User.Identity.Name); //check if the profile already exist ProviderProfile loggedProfile = _providerProfileRepo.GetSingle(p => p.UserId == loggedUser.Id); //create or update the profile if (loggedProfile != null) { loggedProfile.PhoneNumber = vm.PhoneNumber; loggedUser.PhoneNumber = vm.PhoneNumber; //save changes to the database _providerProfileRepo.Update(loggedProfile); await _userManager.UpdateAsync(loggedUser); ////update existing Packages For Name Changes //IEnumerable<TravelPackage> list = _travelPackageRepo.Query(l => l.MyUserId == loggedUser.Id).ToList(); //foreach (var item in list) //{ // item.ProviderName = vm.CompanyName; // _travelPackageRepo.Update(item); //} } else { //create new profile loggedProfile = new ProviderProfile { UserId = loggedUser.Id, PhoneNumber = loggedUser.PhoneNumber, }; //save the new profile to database _providerProfileRepo.Create(loggedProfile); } return(RedirectToAction("Index", "Home")); } return(View(vm)); }