| 1234567891011121314151617181920212223242526272829303132333435363738 | using System;using InABox.Core;namespace InABox.Rpc{    public class RpcQueryDefinition : ISerializeBinary    {        public string Key { get; set; }        public Type Type { get; set; }        public IFilter? Filter { get; set; }        public IColumns? Columns { get; set; }        public ISortOrder? Sort { get; set; }                public void SerializeBinary(CoreBinaryWriter writer)        {            writer.Write(Key ?? "");            writer.Write(Type.EntityName());            writer.WriteBinaryValue(Filter);            writer.WriteBinaryValue(Columns);            writer.WriteBinaryValue(Sort);        }        public void DeserializeBinary(CoreBinaryReader reader)        {            Key = reader.ReadString();            Type = CoreUtils.GetEntity(reader.ReadString());            Filter = reader.ReadBinaryValue(typeof(Filter<>).MakeGenericType(Type)) as IFilter;            Columns = reader.ReadBinaryValue(typeof(Columns<>).MakeGenericType(Type)) as IColumns;            Sort = reader.ReadBinaryValue(typeof(SortOrder<>).MakeGenericType(Type)) as ISortOrder;        }        public string FullDescription() => $"[{Filter}]";        public string ShortDescription() => $"Query";    }}
 |