public void DeleteMessageToSend(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
{
logger.DebugFormat("Deleting output message {0}",
new Guid(Api.RetrieveColumn(session, outgoing, ColumnsInformation.OutgoingColumns["msg_id"])));
Api.JetDelete(session, outgoing);
} while (Api.TryMoveNext(session, outgoing));
}