Rhino.Queues.Storage.GlobalActions.RegisterUpdateToReverse C# (CSharp) Метод

RegisterUpdateToReverse() публичный Метод

public RegisterUpdateToReverse ( System.Guid txId, Rhino.Queues.Storage.MessageBookmark bookmark, MessageStatus statusToRestore, string subQueue ) : void
txId System.Guid
bookmark Rhino.Queues.Storage.MessageBookmark
statusToRestore MessageStatus
subQueue string
Результат void
        public void RegisterUpdateToReverse(Guid txId, MessageBookmark bookmark, MessageStatus statusToRestore, string subQueue)
        {
            Api.JetSetCurrentIndex(session, txs, "by_bookmark");

            var actualBookmark = bookmark.Bookmark.Take(bookmark.Size).ToArray();

            Api.MakeKey(session, txs, bookmark.Size, MakeKeyGrbit.NewKey);
            Api.MakeKey(session, txs, actualBookmark, MakeKeyGrbit.None);

            if(Api.TrySeek(session, txs, SeekGrbit.SeekEQ))
            {
                Api.JetDelete(session, txs);
            }

            using (var update = new Update(session, txs, JET_prep.Insert))
            {
                Api.SetColumn(session, txs, ColumnsInformation.TxsColumns["tx_id"], txId.ToByteArray());
                Api.SetColumn(session, txs, ColumnsInformation.TxsColumns["bookmark_size"], bookmark.Size);
                Api.SetColumn(session, txs, ColumnsInformation.TxsColumns["bookmark_data"], actualBookmark);
                Api.SetColumn(session, txs, ColumnsInformation.TxsColumns["value_to_restore"], (int)statusToRestore);
                Api.SetColumn(session, txs, ColumnsInformation.TxsColumns["queue"], bookmark.QueueName, Encoding.Unicode);
                Api.SetColumn(session, txs, ColumnsInformation.TxsColumns["subqueue"], subQueue, Encoding.Unicode);

                update.Save();
            }
        }