12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- 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.Write(Filter != null);
- if (Filter != null)
- Filter.SerializeBinary(writer);
- writer.Write(Columns != null);
- if (Columns != null)
- Columns.SerializeBinary(writer);
- writer.Write(Sort != null);
- if (Sort != null)
- Sort.SerializeBinary(writer);
- }
- public void DeserializeBinary(CoreBinaryReader reader)
- {
- Key = reader.ReadString();
- var type = reader.ReadString();
- Type = CoreUtils.GetEntity(type);
- if (reader.ReadBoolean())
- {
- var filtertype = typeof(Filter<>).MakeGenericType(Type);
- Filter = Activator.CreateInstance(filtertype) as IFilter;
- Filter?.DeserializeBinary(reader);
- }
- if (reader.ReadBoolean())
- {
- var columnstype = typeof(Columns<>).MakeGenericType(Type);
- Columns = Activator.CreateInstance(columnstype) as IColumns;
- Columns?.DeserializeBinary(reader);
- }
- if (reader.ReadBoolean())
- {
- var sorttype = typeof(SortOrder<>).MakeGenericType(Type);
- Sort = Activator.CreateInstance(sorttype) as ISortOrder;
- Sort?.DeserializeBinary(reader);
- }
-
- }
- }
- }
|