public async Task <IActionResult> OnPostAsync(string id, UserPostModel model, IFormCollection collection) { await Init(id); if (!ModelState.IsValid) { return(Page()); } var unselectedRoles = SelectedUserRoles.Where(r => !model.SelectedRoles?.Contains(r) ?? false).ToList(); var newRoles = model.SelectedRoles?.Where(r => !SelectedUserRoles.Contains(r)).ToList(); var rolesUpdated = false; if (unselectedRoles.Any()) { await _userManager.RemoveFromRolesAsync(SelectedUser, unselectedRoles); rolesUpdated = true; } if (!newRoles.IsNullOrEmpty()) { await _userManager.AddToRolesAsync(SelectedUser, newRoles); rolesUpdated = true; } if (rolesUpdated) { EZmsInMemoryCache.Remove($"EZms:principal:userroles:{id}"); } SelectedUser.Email = model.Email; SelectedUser.PhoneNumber = model.PhoneNumber; await _userManager.UpdateAsync(SelectedUser); if (unselectedRoles.Any() || newRoles.Any()) { SelectedUserRoles = await GetUserRoles(SelectedUser); } return(Page()); }
public void Clear() { EZmsInMemoryCache.Remove(_cacheKey); EZmsInMemoryCache.Remove(PageConstraint.CacheKey); EZmsInMemoryCache.Clear(); }