protected void NextSequenceReset(Message sequenceReset) { bool isGapFill = false; if (sequenceReset.IsSetField(Fields.Tags.GapFillFlag)) { isGapFill = sequenceReset.GetBoolean(Fields.Tags.GapFillFlag); } if (!Verify(sequenceReset, isGapFill, isGapFill)) { return; } if (sequenceReset.IsSetField(Fields.Tags.NewSeqNo)) { int newSeqNo = sequenceReset.GetInt(Fields.Tags.NewSeqNo); this.Log.OnEvent("Received SequenceReset FROM: " + state_.GetNextTargetMsgSeqNum() + " TO: " + newSeqNo); if (newSeqNo > state_.GetNextTargetMsgSeqNum()) { state_.SetNextTargetMsgSeqNum(newSeqNo); } else { if (newSeqNo < state_.GetNextTargetMsgSeqNum()) { GenerateReject(sequenceReset, FixValues.SessionRejectReason.VALUE_IS_INCORRECT); } } } }