public async Task <IActionResult> UpdateProfile() { var loggedUser = await _userManagerService.FindByNameAsync(User.Identity.Name); ProviderProfile loggedProfile = _profileRepo.GetSingle(p => p.UserId == loggedUser.Id); UpdateProviderProfileViewModel vm = new UpdateProviderProfileViewModel { UserId = loggedUser.Id, Email = loggedUser.Email, ImgPath = "admin\\person-solid.png" }; if (loggedProfile != null) { vm.CompanyName = loggedProfile.CompanyName; vm.Phone = loggedProfile.Phone; vm.Address = loggedProfile.Address; if (loggedProfile.ImgPath != null) { vm.ImgPath = loggedProfile.ImgPath; } } return(View(vm)); }
public async Task <IActionResult> UpdateProfile(UpdateProviderProfileViewModel vm, IFormFile ImgPath) { if (ModelState.IsValid) { var loggedUser = await _userManagerService.FindByNameAsync(User.Identity.Name); ProviderProfile loggedProfile = _profileRepo.GetSingle(p => p.UserId == loggedUser.Id); string uploadPath = Path.Combine(_environment.WebRootPath, "Uploads"); uploadPath = Path.Combine(uploadPath, User.Identity.Name); Directory.CreateDirectory(Path.Combine(uploadPath, "Profile")); if (loggedProfile != null) { loggedProfile.CompanyName = vm.CompanyName; loggedProfile.Email = vm.Email; loggedProfile.Phone = vm.Phone; loggedProfile.Address = vm.Address; if (ImgPath != null) { string fileName = Path.GetFileName(ImgPath.FileName); using (FileStream fs = new FileStream(Path.Combine(uploadPath, "Profile", fileName), FileMode.Create)) { ImgPath.CopyTo(fs); } loggedProfile.ImgPath = Path.Combine(User.Identity.Name, "Profile", fileName); } _profileRepo.Update(loggedProfile); } else { loggedProfile = new ProviderProfile(); loggedProfile.CompanyName = vm.CompanyName; loggedProfile.Email = vm.Email; loggedProfile.Phone = vm.Phone; loggedProfile.Address = vm.Address; loggedProfile.UserId = loggedUser.Id; if (ImgPath != null) { string fileName = Path.GetFileName(ImgPath.FileName); using (FileStream fs = new FileStream(Path.Combine(uploadPath, "Profile", fileName), FileMode.Create)) { ImgPath.CopyTo(fs); } loggedProfile.ImgPath = Path.Combine(User.Identity.Name, "Profile", fileName); } _profileRepo.Create(loggedProfile); } } ViewData["Message"] = "Login successfully"; return(RedirectToAction("Index", "Provider")); }