public override void Write(BinaryWriter writer, object obj)
{
var e = (ExecutionCommand)obj;
writer.Write(e.Id);
writer.Write((byte)e.Type);
writer.Write(e.DateTime.Ticks);
writer.Write(e.TransactTime.Ticks);
if (this.version >= 2)
{
writer.Write(e.Symbol);
}
writer.Write(e.OrderId);
writer.Write(e.InstrumentId);
writer.Write(e.ProviderId);
writer.Write(e.RouteId);
writer.Write(e.PortfolioId);
writer.Write(e.ClientId);
writer.Write((byte)e.Side);
writer.Write((byte)e.OrdType);
writer.Write((byte)e.TimeInForce);
writer.Write(e.ExpireTime.Ticks);
writer.Write(e.Price);
writer.Write(e.StopPx);
writer.Write(e.Qty);
if (this.version >= 1)
{
writer.Write(e.MinQty);
writer.Write(e.PegDifference);
writer.Write(e.ExecInst);
}
writer.Write(e.OCA);
writer.Write(e.Text);
if (e.Account != null)
{
writer.Write(true);
writer.Write(e.Account);
}
else
{
writer.Write(false);
}
if (e.ClientID != null)
{
writer.Write(true);
writer.Write(e.ClientID);
}
else
{
writer.Write(false);
}
if (e.Fields != null)
{
writer.Write(true);
this.streamerManager.Serialize(writer, e.Fields);
}
else
{
writer.Write(false);
}
writer.Write(e.AlgoId);
writer.Write(e.ClOrderId);
}
}