// ReSharper disable once FlagArgument public static string InterfaceTypesToString(NetworkInterfaceTypes types) { var interfaceTypes = new List <string>(); if (types.HasFlag(NetworkInterfaceTypes.Lan) && types.HasFlag(NetworkInterfaceTypes.Wireless) && types.HasFlag(NetworkInterfaceTypes.RemoteAccess)) { return("All"); } if (types.HasFlag(NetworkInterfaceTypes.Lan)) { interfaceTypes.Add("Lan"); } if (types.HasFlag(NetworkInterfaceTypes.Wireless)) { interfaceTypes.Add("Wireless"); } if (types.HasFlag(NetworkInterfaceTypes.RemoteAccess)) { interfaceTypes.Add("RemoteAccess"); } return(string.Join(",", interfaceTypes.ToArray())); }
// ReSharper disable once ExcessiveIndentation public static NetworkInterfaceTypes StringToInterfaceTypes(string str) { if (string.IsNullOrEmpty(str?.Trim())) { return(NetworkInterfaceTypes.Lan | NetworkInterfaceTypes.RemoteAccess | NetworkInterfaceTypes.Wireless); } NetworkInterfaceTypes value = 0; foreach (var interfaceType in str.Split(',')) { if (string.Equals(interfaceType.Trim(), @"All", StringComparison.OrdinalIgnoreCase)) { return(NetworkInterfaceTypes.Lan | NetworkInterfaceTypes.RemoteAccess | NetworkInterfaceTypes.Wireless); } if (string.Equals(interfaceType.Trim(), @"RemoteAccess", StringComparison.OrdinalIgnoreCase)) { value |= NetworkInterfaceTypes.RemoteAccess; } else if (string.Equals(interfaceType.Trim(), @"Wireless", StringComparison.OrdinalIgnoreCase)) { value |= NetworkInterfaceTypes.Wireless; } else if (string.Equals(interfaceType.Trim(), @"Lan", StringComparison.OrdinalIgnoreCase)) { value |= NetworkInterfaceTypes.Lan; } } if (value == 0) { return(NetworkInterfaceTypes.Lan | NetworkInterfaceTypes.RemoteAccess | NetworkInterfaceTypes.Wireless); } return(value); }
// ReSharper disable once FlagArgument public static string InterfaceTypesToString(NetworkInterfaceTypes types) => (types & All) == All ? "All" : string.Join(",", types.GetFlags().Select(f => f.ToString()).ToArray());