public static bool RenameMemberGroupRoleRules(this IPublicAccessService publicAccessService, string?oldRolename, string?newRolename) { var hasChange = false; if (oldRolename == newRolename) { return(false); } IEnumerable <PublicAccessEntry> allEntries = publicAccessService.GetAll(); foreach (PublicAccessEntry entry in allEntries) { // get rules that match IEnumerable <PublicAccessRule> roleRules = entry.Rules .Where(x => x.RuleType == Constants.Conventions.PublicAccess.MemberRoleRuleType) .Where(x => x.RuleValue == oldRolename); var save = false; foreach (PublicAccessRule roleRule in roleRules) { // a rule is being updated so flag this entry to be saved roleRule.RuleValue = newRolename ?? string.Empty; save = true; } if (save) { hasChange = true; publicAccessService.Save(entry); } } return(hasChange); }