private static string StateToString(uint state)
{
if (state == 0)
return Enum.GetName(typeof(GroupState), 0);
List<string> names = new List<string>();
foreach (int value in Enum.GetValues(typeof(GroupState)))
{
if (value != 0 && (state & value) == value)
{
names.Add(Enum.GetName(typeof(GroupState), value));
}
}
return names.Count == 0 ? state.ToString("x") : String.Join("|", names.ToArray());
}