コード例 #1
0
        // 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()));
        }
コード例 #2
0
        // 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);
        }
コード例 #3
0
 // ReSharper disable once FlagArgument
 public static string InterfaceTypesToString(NetworkInterfaceTypes types) =>
 (types & All) == All ? "All" : string.Join(",", types.GetFlags().Select(f => f.ToString()).ToArray());