| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 | using System;using InABox.Core;namespace InABox.Rpc{    public class RpcValidateParameters : IRpcCommandParameters    {        public string? UserID { get; set; }        public string? Password { get; set; }                public string? PIN { get; set; }        public bool UsePIN { get; set; }                // reconnect to an existing session        public Guid SessionID { get; set; }                public Platform Platform { get; set; }        public string? Version { get; set; }                public void SerializeBinary(CoreBinaryWriter writer)        {            writer.Write(UserID ?? "");            writer.Write(Password ?? "");            writer.Write(PIN ?? "");            writer.Write(UsePIN);            writer.Write(SessionID);            writer.WriteBinaryValue(Platform);            writer.Write(Version ?? "");        }        public void DeserializeBinary(CoreBinaryReader reader)        {            UserID = reader.ReadString();            Password = reader.ReadString();            PIN = reader.ReadString();            UsePIN = reader.ReadBoolean();            SessionID = reader.ReadGuid();            Platform = reader.ReadBinaryValue<Platform>();            Version = reader.ReadString();        }        public string? FullDescription()        {            if (SessionID == Guid.Empty)            {                if (string.IsNullOrWhiteSpace(UserID))                {                    return $"Validate({PIN})";                }                else                {                    return $"Validate({UserID})";                }            }            else            {                if (string.IsNullOrWhiteSpace(UserID))                {                    return $"Validate({PIN}, {SessionID})";                }                else                {                    return $"Validate({UserID}, {SessionID})";                }            }        }        public string? ShortDescription() => FullDescription();    }}
 |