protected bool GenerateResendRequest(string beginString, int msgSeqNum)
{
Message resendRequest = msgFactory_.Create(beginString, MsgType.RESEND_REQUEST);
Fields.BeginSeqNo beginSeqNo = new Fields.BeginSeqNo(state_.GetNextTargetMsgSeqNum());
Fields.EndSeqNo endSeqNo;
if (beginString.CompareTo(FixValues.BeginString.FIX42) >= 0)
endSeqNo = new Fields.EndSeqNo(0);
else if (beginString.CompareTo(FixValues.BeginString.FIX41) <= 0)
endSeqNo = new Fields.EndSeqNo(999999);
else
endSeqNo = new Fields.EndSeqNo(msgSeqNum - 1);
resendRequest.SetField(beginSeqNo);
resendRequest.SetField(endSeqNo);
InitializeHeader(resendRequest);
if (SendRaw(resendRequest, 0))
{
this.Log.OnEvent("Sent ResendRequest FROM: " + beginSeqNo.Obj + " TO: " + endSeqNo.Obj);
state_.SetResendRange(beginSeqNo.Obj, msgSeqNum - 1);
return true;
}
else
{
this.Log.OnEvent("Error sending ResendRequest (" + beginSeqNo.Obj + " ," + endSeqNo.Obj + ")");
return false;
}
}