// [Authorize] // Get api/user/profile public async Task <Object> PatchProfile([FromForm] MyUserModel EditedUser) { var file = Request?.Form?.Files?.FirstOrDefault(); bool IsInfoValid = ModelState.IsValid; bool IsImageUploaded = file?.Length > 0; //string UserId = EditedUser.Id; string UserId = User.Claims.First(c => c.Type == "UserId").Value; var UserInDB = await _userManager.FindByIdAsync(UserId); string oldImagePath = UserInDB.PrifleImageUrl; UserInDB.UserName = EditedUser.UserName; UserInDB.Email = EditedUser.Email; UserInDB.City = EditedUser.City; UserInDB.PhoneNumber = EditedUser.PhoneNumber; if (IsInfoValid == false) { return(BadRequest(new { message = "invalid Edited info" })); } if (IsImageUploaded == false) { var user = await _userManager.UpdateAsync(UserInDB); return(Ok(user)); } var uploadedfilename = ContentDispositionHeaderValue.Parse(file.ContentDisposition).FileName.Trim('"'); var dbImagePath = FSHelpers.SaveProfileImage(EditedUser, uploadedfilename, file); if (dbImagePath == null) { return(BadRequest(new { message = dbImagePath })); } UserInDB.PrifleImageUrl = dbImagePath; var result = await _userManager.UpdateAsync(UserInDB); FSHelpers.DeleteOldImage(oldImagePath); return(Ok(result)); //return result; }