RpcValidateParameters.cs 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. using System;
  2. using InABox.Core;
  3. namespace InABox.Rpc
  4. {
  5. public class RpcValidateParameters : IRpcCommandParameters
  6. {
  7. public string? UserID { get; set; }
  8. public string? Password { get; set; }
  9. public string? PIN { get; set; }
  10. public bool UsePIN { get; set; }
  11. // reconnect to an existing session
  12. public Guid SessionID { get; set; }
  13. public Platform Platform { get; set; }
  14. public string? Version { get; set; }
  15. public void SerializeBinary(CoreBinaryWriter writer)
  16. {
  17. writer.Write(UserID ?? "");
  18. writer.Write(Password ?? "");
  19. writer.Write(PIN ?? "");
  20. writer.Write(UsePIN);
  21. writer.Write(SessionID);
  22. writer.WriteBinaryValue(Platform);
  23. writer.Write(Version ?? "");
  24. }
  25. public void DeserializeBinary(CoreBinaryReader reader)
  26. {
  27. UserID = reader.ReadString();
  28. Password = reader.ReadString();
  29. PIN = reader.ReadString();
  30. UsePIN = reader.ReadBoolean();
  31. SessionID = reader.ReadGuid();
  32. Platform = reader.ReadBinaryValue<Platform>();
  33. Version = reader.ReadString();
  34. }
  35. public string? FullDescription()
  36. {
  37. if (SessionID == Guid.Empty)
  38. {
  39. if (string.IsNullOrWhiteSpace(UserID))
  40. {
  41. return $"Validate({PIN})";
  42. }
  43. else
  44. {
  45. return $"Validate({UserID})";
  46. }
  47. }
  48. else
  49. {
  50. if (string.IsNullOrWhiteSpace(UserID))
  51. {
  52. return $"Validate({PIN}, {SessionID})";
  53. }
  54. else
  55. {
  56. return $"Validate({UserID}, {SessionID})";
  57. }
  58. }
  59. }
  60. public string? ShortDescription() => FullDescription();
  61. }
  62. }