public static List <NetworkServer> Parse(NetworkServerResponse response) { var result = new List <NetworkServer>(); if (response.Response.Contains(DELIMITER)) { var tokens = response.Response.Split(DELIMITER, StringSplitOptions.RemoveEmptyEntries); foreach (var token in tokens) { result.Add(NetworkServer.Parse(response, token)); } } return(result); }
#pragma warning restore IDE1006 // Naming Styles public static NetworkServer Parse(NetworkServerResponse response, string data) { var result = new NetworkServer() { Response = response }; if (data.Contains(DELIMITER)) { var tokens = data.Split(DELIMITER, StringSplitOptions.RemoveEmptyEntries); for (var i = 0; i < tokens.Length; i += 2) { //Must have a matching pair if (i + 1 < tokens.Length) { switch (tokens[i]) { case nameof(ServerName): result.ServerName = tokens[i + 1]; break; case nameof(InstanceName): result.InstanceName = tokens[i + 1]; break; case nameof(IsClustered): result.IsClustered = String.Equals(tokens[i + 1], "yes", StringComparison.OrdinalIgnoreCase); break; case nameof(Version): result.Version = tokens[i + 1]; break; case nameof(np): result.np = tokens[i + 1]; break; case nameof(tcp): result.tcp = tokens[i + 1]; break; case nameof(via): result.via = tokens[i + 1]; break; case nameof(rpc): result.rpc = tokens[i + 1]; break; case nameof(spx): result.spx = tokens[i + 1]; break; case nameof(adsp): result.adsp = tokens[i + 1]; break; case nameof(bv): result.bv = tokens[i + 1]; break; } } } } return(result); }