private static IEnumerable <SourceLevels> GetOnSourceLevels(SourceLevels sourceLevel, bool on) { // SourceSwitch determines if a particular level gets traced based on whether its bit is // set in the current level. For example, if the current level was Warning (0000 0111), // then Warning (0000 0111), Error (0000 0011), and Critical (0000 0001) all get traced. var levels = TestServices.GetEnumValues <SourceLevels>(); foreach (var level in levels) { if (level == 0) { continue; } if (((level & sourceLevel) == sourceLevel) == on) { yield return(level); } } if (!on) { yield return(SourceLevels.Off); } }
public static IEnumerable <TEnum> GetEnumValues <TEnum>() where TEnum : struct { var values = TestServices.GetEnumValues <TEnum>(); foreach (TEnum value in values) { yield return(value); } }
private static Tuple <TEnum, TEnum> GetEnumBounds <TEnum>() where TEnum : struct { var values = TestServices.GetEnumValues <TEnum>(); return(new Tuple <TEnum, TEnum>(values.First(), values.Last())); }