FastQuant.AccountDataStreamer.Write C# (CSharp) Method

Write() public method

public Write ( BinaryWriter writer, object obj ) : void
writer System.IO.BinaryWriter
obj object
return void
        public override void Write(BinaryWriter writer, object obj)
        {
            var data = (AccountData)obj;
            writer.Write(data.DateTime.Ticks);
            writer.Write((int)data.Type);
            writer.Write(data.Account);
            writer.Write(data.ProviderId);
            writer.Write(data.Route);
            var list = new List<AccountDataField>();
            foreach (AccountDataField field in data.Fields)
            {
                var type = field.Value.GetType();
                if (StreamerManager.HasStreamer(type))
                {
                    list.Add(field);
                }
                else if (type == typeof(object[]))
                {
                    var array = (object[])field.Value;
                    for (int i = 0; i < array.Length; i++)
                        StreamerManager.HasStreamer(array[i].GetType());
                    list.Add(field);
                }
            }
            writer.Write(list.Count);
            foreach (var field in list)
            {
                writer.Write(field.Name);
                writer.Write(field.Currency);
                StreamerManager.Serialize(writer, field.Value);
            }
        }
    }