public static GroupPatch WithPrivacy(this GroupPatch group, GroupPrivacySubject subject, PrivacyLevel level) { // what do you mean switch expressions can't be statements >.> _ = subject switch { GroupPrivacySubject.Description => group.DescriptionPrivacy = level, GroupPrivacySubject.Icon => group.IconPrivacy = level, GroupPrivacySubject.List => group.ListPrivacy = level, GroupPrivacySubject.Visibility => group.Visibility = level, _ => throw new ArgumentOutOfRangeException($"Unknown privacy subject {subject}") }; return(group); }
public static bool TryParseGroupPrivacy(string input, out GroupPrivacySubject subject) { switch (input.ToLowerInvariant()) { case "name": subject = GroupPrivacySubject.Name; break; case "description": case "desc": case "text": case "info": subject = GroupPrivacySubject.Description; break; case "avatar": case "pfp": case "pic": case "icon": subject = GroupPrivacySubject.Icon; break; case "visibility": case "hidden": case "shown": case "visible": subject = GroupPrivacySubject.Visibility; break; case "meta": case "metadata": case "created": subject = GroupPrivacySubject.Metadata; break; case "list": case "listing": case "members": subject = GroupPrivacySubject.List; break; default: subject = default; return(false); } return(true); }