public static ServerStat Parse ( [NotNull] ServerResponse response ) { ServerStat result = new ServerStat { TotalCommandCount = response.RequireInt32(), ClientCount = response.RequireInt32(), Unknown = response.RequireInt32() }; List <ClientInfo> clients = new List <ClientInfo>(); while (true) { string number = response.GetAnsiString(); string ipAddress = response.GetAnsiString(); if (string.IsNullOrEmpty(number) || string.IsNullOrEmpty(ipAddress)) { break; } ClientInfo client = new ClientInfo { Number = number, IPAddress = ipAddress, Port = response.RequireAnsiString(), Name = response.RequireAnsiString(), ID = response.RequireAnsiString(), Workstation = response.RequireAnsiString(), Registered = response.RequireAnsiString(), Acknowledged = response.RequireAnsiString(), LastCommand = response.RequireAnsiString(), CommandNumber = response.RequireAnsiString() }; clients.Add(client); } result.RunningClients = clients.ToArray(); return(result); }