public void MarkAsReadyToSend(Guid transactionId)
{
Api.JetSetCurrentIndex(session, outgoing, "by_tx_id");
Api.MakeKey(session, outgoing, transactionId.ToByteArray(), MakeKeyGrbit.NewKey);
if (Api.TrySeek(session, outgoing, SeekGrbit.SeekEQ) == false)
return;
Api.MakeKey(session, outgoing, transactionId.ToByteArray(), MakeKeyGrbit.NewKey);
try
{
Api.JetSetIndexRange(session, outgoing,
SetIndexRangeGrbit.RangeInclusive | SetIndexRangeGrbit.RangeUpperLimit);
}
catch (EsentErrorException e)
{
if (e.Error!=JET_err.NoCurrentRecord)
throw;
return;
}
do
{
using (var update = new Update(session, outgoing, JET_prep.Replace))
{
Api.SetColumn(session, outgoing, ColumnsInformation.OutgoingColumns["send_status"], (int)OutgoingMessageStatus.Ready);
update.Save();
}
logger.DebugFormat("Marking output message {0} as Ready",
new Guid(Api.RetrieveColumn(session, outgoing, ColumnsInformation.OutgoingColumns["msg_id"])));
} while (Api.TryMoveNext(session, outgoing));
}