Fluent.MessagePacker.MakePacket C# (CSharp) Method

MakePacket() public method

public MakePacket ( string label, System.DateTime timestamp ) : byte[]
label string
timestamp System.DateTime
return byte[]
        public byte[] MakePacket(string label, DateTime timestamp, params object[] records)
        {
            string tag = "";

            if (!string.IsNullOrEmpty(_tag) && !string.IsNullOrEmpty(label))
            {
                tag = string.Format("{0}.{1}", _tag, label);
            }
            else if (!string.IsNullOrEmpty(_tag))
            {
                tag = _tag;
            }
            else if (!string.IsNullOrEmpty(label))
            {
                tag = label;
            }

            var xs = new List<MessagePackObject>();
            xs.Add(tag);
            var children = new List<MessagePackObject>();
            foreach (var record in records)
            {
                var child = new List<MessagePackObject>();
                child.Add(timestamp.ToUniversalTime().Subtract(_epoc).TotalSeconds);
                child.Add(CreateTypedMessagePackObject(record.GetType(), record, first: true));
                children.Add(new MessagePackObject(child));
            }
            xs.Add(new MessagePackObject(children));

            var x = new MessagePackObject(xs);

            var ms = new MemoryStream();
            var packer = Packer.Create(ms);
            packer.Pack(x);
            return ms.ToArray();
        }