public async Task <IActionResult> UpdateUserRole(string id, [FromBody] AppUserInfoViewModel userInfo) { try { if (ModelState.IsValid) { var updateRoleResult = await UpdateRole(userInfo); if (updateRoleResult.Succeeded) { return(Ok(userInfo)); } } else { return(BadRequest(ModelState)); } } catch (Exception ex) { _logger.LogError($"Failed to save user role: {ex}"); } return(BadRequest("Failed to save user role")); }
public IHttpActionResult PatchUser(AppUserInfoViewModel appUser) { var user = UserManager.FindById(User.Identity.GetUserId()); if (user == null) { return(NotFound()); } if (appUser.UserNick != null) { user.UserNick = appUser.UserNick; } if (appUser.Region != null) { user.Region = appUser.Region; } if (appUser.ProfileImage != null) { user.ProfileImage = appUser.ProfileImage; } if (appUser.UserQuote != null) { user.UserQuote = appUser.UserQuote; } if (appUser.Instagram != null) { user.Instagram = appUser.Instagram; } if (appUser.KIK != null) { user.KIK = appUser.KIK; } if (appUser.WhatsApp != null) { user.WhatsApp = appUser.WhatsApp; } if (appUser.Twitter != null) { user.Twitter = appUser.Twitter; } if (appUser.SnapChat != null) { user.SnapChat = appUser.SnapChat; } if (appUser.WhatsApp != null) { user.WhatsApp = appUser.WhatsApp; } if (appUser.PostCount != null) { user.PostCount = appUser.PostCount; } db.Entry(user).State = EntityState.Modified; db.SaveChanges(); return(Ok()); }
private async Task <IdentityResult> UpdateRole(AppUserInfoViewModel userInfo) { var currentUser = await _userManager.FindByNameAsync(userInfo.Email); var roles = await _userManager.GetRolesAsync(currentUser); var resultRemoveRoles = await _userManager.RemoveFromRolesAsync(currentUser, roles.ToArray()); IdentityResult resultAddRole = null; if (!String.IsNullOrWhiteSpace(userInfo.Role)) { resultAddRole = await _userManager.AddToRoleAsync(currentUser, userInfo.Role); } if (resultRemoveRoles.Succeeded && (resultAddRole == null || resultAddRole.Succeeded)) { return(resultRemoveRoles); } return(resultAddRole.Succeeded ? resultRemoveRoles : resultAddRole); }