private void SetAccessLevelRestrictions(IList <UserAccessLevel> accessLevels) { if (accessLevels.Count == 0) { return; } string message; KeyValuePair <int, string> [] allAccessLevels = User.GetAllAccessLevels(); if (accessLevels.Count == 1) { message = Translator.GetString("The default permissions for the access level of {0} were changed. " + "Do you want to reset the permissions of all users with access level of {0} to the new defaults?"); message = string.Format(message, string.Format("\"{0}\"", allAccessLevels [(int)accessLevels [0]].Value)); } else { message = Translator.GetString("The default permissions for the access levels of {0} were changed. " + "Do you want to reset the permissions of all users with access levels of {0} to the new defaults?"); StringBuilder accessLevelsBuilder = new StringBuilder(); for (int i = 0; i < accessLevels.Count; i++) { UserAccessLevel accessLevel = accessLevels [i]; accessLevelsBuilder.AppendFormat("\"{0}\"", allAccessLevels.First(k => k.Key == (int)accessLevel).Value); if (i < accessLevels.Count - 2) { accessLevelsBuilder.Append(", "); } else if (i < accessLevels.Count - 1) { accessLevelsBuilder.AppendFormat(" {0} ", Translator.GetString("and")); } } message = string.Format(message, accessLevelsBuilder); } if (Message.ShowDialog(Translator.GetString("Access Level Permissions"), null, message, "Icons.Question32.png", MessageButtons.YesNo) == ResponseType.Yes) { foreach (UserAccessLevel level in accessLevels) { foreach (User user in users) { if (user.UserLevel == level) { restsRoot.ResetLevelRestrictions(user.Id, level); } } } } accessLevels.Clear(); }