public bool GenerateReject(Message message, FixValues.SessionRejectReason reason, int field) { string beginString = this.SessionID.BeginString; Message reject = msgFactory_.Create(beginString, Fields.MsgType.REJECT); reject.ReverseRoute(message.Header); InitializeHeader(reject); string msgType; if (message.Header.IsSetField(Fields.Tags.MsgType)) msgType = message.Header.GetField(Fields.Tags.MsgType); else msgType = ""; int msgSeqNum = 0; if (message.Header.IsSetField(Fields.Tags.MsgSeqNum)) { try { msgSeqNum = message.Header.GetInt(Fields.Tags.MsgSeqNum); reject.SetField(new Fields.RefSeqNum(msgSeqNum)); } catch (System.Exception) { } } if (beginString.CompareTo(FixValues.BeginString.FIX42) >= 0) { if (msgType.Length > 0) reject.SetField(new Fields.RefMsgType(msgType)); if ((FixValues.BeginString.FIX42.Equals(beginString) && reason.Value <= FixValues.SessionRejectReason.INVALID_MSGTYPE.Value) || (beginString.CompareTo(FixValues.BeginString.FIX42) > 0)) { reject.SetField(new Fields.SessionRejectReason(reason.Value)); } } if (!MsgType.LOGON.Equals(msgType) && !MsgType.SEQUENCE_RESET.Equals(msgType) && (msgSeqNum == state_.GetNextTargetMsgSeqNum())) { state_.IncrNextTargetMsgSeqNum(); } if ((0 != field) || FixValues.SessionRejectReason.INVALID_TAG_NUMBER.Equals(reason)) { if (FixValues.SessionRejectReason.INVALID_MSGTYPE.Equals(reason)) { if (this.SessionID.BeginString.CompareTo(FixValues.BeginString.FIX43) >= 0) PopulateRejectReason(reject, reason.Description); else PopulateSessionRejectReason(reject, field, reason.Description, false); } else PopulateSessionRejectReason(reject, field, reason.Description, true); this.Log.OnEvent("Message " + msgSeqNum + " Rejected: " + reason.Description + " (Field=" + field + ")"); } else { PopulateRejectReason(reject, reason.Description); this.Log.OnEvent("Message " + msgSeqNum + " Rejected: " + reason.Value); } if (!state_.ReceivedLogon) throw new QuickFIXException("Tried to send a reject while not logged on"); return SendRaw(reject, 0); }
public bool GenerateReject(Message message, FixValues.SessionRejectReason reason) { return GenerateReject(message, reason, 0); }
public TagException(int field, FixValues.SessionRejectReason reason, System.Exception innerException) : base(reason.Description, innerException) { this.field = field; this.sessionRejectReason = reason; }
internal bool GenerateReject(MessageBuilder msgBuilder, FixValues.SessionRejectReason reason, int field=0) { return GenerateReject(msgBuilder.RejectableMessage(), reason, field); }
public TagException(int field, FixValues.SessionRejectReason reason) : base(reason.Description) { this._field = field; this.sessionRejectReason = reason; }