/// <summary> /// Converts a byte array to a UserList Package and returns a value indicating whether the conversion was successful. /// </summary> /// <param name="data">input data to convert</param> /// <param name="userList">output</param> /// <returns>Returns whether the conversion was successful.</returns> internal static bool TryParse(byte[] data, out UserList userList) { userList = null; List <User> clientListTemp = new List <User>(); while (TrySplitByte(data, PackageControl.GroupSeperator, true, out byte[] userByte, out data))
/// <summary> /// Converts a byte array to a Package and returns a code. /// 0 - Successful /// 1 - Wrong package structur /// 2 - Wrong package type /// </summary> /// <param name="input"></param> /// <param name="package"></param> /// <returns>0 - Successful, 1 - Wrong package structur, 2 - Wrong package type</returns> public static int TryParse(byte[] input, out Package package) { package = null; if (!TryConvertInputByte(input, out PackageType packageType, out byte[] userData)) { return(1); } switch (packageType) { case PackageType.RegistrationRequest: if (RegistrationRequest.TryParse(userData, out RegistrationRequest request)) { package = request; } break; case PackageType.LoginRequest: if (LoginRequest.TryParse(userData, out LoginRequest login)) { package = login; } break; case PackageType.UserList: if (UserList.TryParse(userData, out UserList userList)) { package = userList; } break; case PackageType.MessageList: if (MessageList.TryParse(userData, out MessageList messageList)) { package = messageList; } break; case PackageType.TextMessageSend: if (SendTextMessage.TryParse(userData, out SendTextMessage sendTextMessage)) { package = sendTextMessage; } break; case PackageType.TextMessageReceive: if (ReceiveTextMessage.TryParse(userData, out ReceiveTextMessage receiveTextMessage)) { package = receiveTextMessage; } break; case PackageType.Ping: break; case PackageType.Feedback: if (Feedback.TryParse(userData, out Feedback feedback)) { package = feedback; } break; default: break; } if (package == null) { return(2); } return(0); }