/// <summary> /// Reads and returns the next message from the game server. /// </summary> public async Task <ServerMessage> ReadNextMessage() { var result = string.Empty; using (var sr = StreamFactory.CreateReader(_client.GetStream())) { result = await sr.ReadLineAsync(); } var parsed = Serializer.Deserialize <NetworkResponseModel>(result); if (!EnumParser.TryParse <ResponseStatusType>(parsed.ResponseStatus, out var status)) { status = ResponseStatusType.Invalid; } return(new ServerMessage(result, status.ToString())); }