protected void GenerateBusinessMessageReject(Message message, int err, int field)
{
string msgType = message.Header.GetString(Tags.MsgType);
int msgSeqNum = message.Header.GetInt(Tags.MsgSeqNum);
string reason = FixValues.BusinessRejectReason.RejText[err];
Message reject;
if (this.SessionID.BeginString.CompareTo(FixValues.BeginString.FIX42) >= 0)
{
reject = msgFactory_.Create(this.SessionID.BeginString, MsgType.BUSINESS_MESSAGE_REJECT);
reject.SetField(new RefMsgType(msgType));
reject.SetField(new BusinessRejectReason(err));
}
else
{
reject = msgFactory_.Create(this.SessionID.BeginString, MsgType.REJECT);
char[] reasonArray = reason.ToLower().ToCharArray();
reasonArray[0] = char.ToUpper(reasonArray[0]);
reason = new string(reasonArray);
}
InitializeHeader(reject);
reject.SetField(new RefSeqNum(msgSeqNum));
state_.IncrNextTargetMsgSeqNum();
reject.SetField(new Text(reason));
Log.OnEvent("Reject sent for Message: " + msgSeqNum + " Reason:" + reason);
SendRaw(reject, 0);
}