public Dictionary.Field FieldDefinition(Message message, Field field) { Dictionary.Message exemplar = Version.Messages[message.MsgType]; if (exemplar == null) { return(null); } _ = exemplar.Fields.TryGetValue(field.Tag, out Dictionary.Field definition); return(definition); }
Message ConstructMessage(Dictionary.Message definition) { Message template = MessageForTemplate(definition); var message = new Message { Definition = definition, MsgType = definition.MsgType }; foreach (Field field in template.Fields) { if (!string.IsNullOrEmpty(field.Value)) { message.Fields.Set(field); } } return(message); }
public Message(Dictionary.Message definition) { Fields = new FieldCollection(); Definition = definition; }
public virtual Message MessageForTemplate(Dictionary.Message definition) { var message = new Message(definition); // // Insert place holders for the standard header fields. Order is important so insert them // now and they can be overridden as required later on. // if (definition.Fields.TryGetValue(Dictionary.Fields.BeginString.Tag, out Dictionary.Field field)) { message.Fields.Add(new Field(field)); } if (definition.Fields.TryGetValue(Dictionary.Fields.BodyLength.Tag, out field)) { message.Fields.Add(new Field(field)); } if (definition.Fields.TryGetValue(Dictionary.Fields.MsgType.Tag, out field)) { message.Fields.Add(new Field(field)); } if (BeginString.BeginString == Dictionary.Versions.FIXT_1_1.BeginString && message.MsgType != Dictionary.Messages.Logon.MsgType) { if (definition.Fields.TryGetValue(Dictionary.Fields.ApplVerID.Tag, out field)) { message.Fields.Add(new Field(field)); } if (definition.Fields.TryGetValue(Dictionary.Fields.ApplExtID.Tag, out field)) { message.Fields.Add(new Field(field)); } if (definition.Fields.TryGetValue(Dictionary.Fields.CstmApplVerID.Tag, out field)) { message.Fields.Add(new Field(field)); } } if (definition.Fields.TryGetValue(Dictionary.Fields.SenderCompID.Tag, out field)) { message.Fields.Add(new Field(field)); } if (definition.Fields.TryGetValue(Dictionary.Fields.TargetCompID.Tag, out field)) { message.Fields.Add(new Field(field)); } if (definition.Fields.TryGetValue(Dictionary.Fields.MsgSeqNum.Tag, out field)) { message.Fields.Add(new Field(field)); } if (definition.Fields.TryGetValue(Dictionary.Fields.SendingTime.Tag, out field)) { message.Fields.Add(new Field(field)); } message.MsgType = definition.MsgType; message.Definition = definition; return(message); }