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

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

public RegisterToSend ( Rhino.Queues.Protocol.Endpoint destination, string queue, string subQueue, MessagePayload payload, System.Guid transactionId ) : System.Guid
destination Rhino.Queues.Protocol.Endpoint
queue string
subQueue string
payload MessagePayload
transactionId System.Guid
Результат System.Guid
        public Guid RegisterToSend(Endpoint destination, string queue, string subQueue, MessagePayload payload, Guid transactionId)
        {
            var bookmark = new MessageBookmark();
            var msgId = GuidCombGenerator.Generate();
            using (var update = new Update(session, outgoing, JET_prep.Insert))
            {
                Api.SetColumn(session, outgoing, ColumnsInformation.OutgoingColumns["msg_id"], msgId.ToByteArray());
                Api.SetColumn(session, outgoing, ColumnsInformation.OutgoingColumns["tx_id"], transactionId.ToByteArray());
                Api.SetColumn(session, outgoing, ColumnsInformation.OutgoingColumns["address"], destination.Host, Encoding.Unicode);
                Api.SetColumn(session, outgoing, ColumnsInformation.OutgoingColumns["port"], destination.Port);
                Api.SetColumn(session, outgoing, ColumnsInformation.OutgoingColumns["time_to_send"], DateTime.Now.ToOADate());
                Api.SetColumn(session, outgoing, ColumnsInformation.OutgoingColumns["sent_at"], DateTime.Now.ToOADate());
                Api.SetColumn(session, outgoing, ColumnsInformation.OutgoingColumns["send_status"], (int)OutgoingMessageStatus.NotReady);
                Api.SetColumn(session, outgoing, ColumnsInformation.OutgoingColumns["queue"], queue, Encoding.Unicode);
                Api.SetColumn(session, outgoing, ColumnsInformation.OutgoingColumns["subqueue"], subQueue, Encoding.Unicode);
                Api.SetColumn(session, outgoing, ColumnsInformation.OutgoingColumns["headers"], payload.Headers.ToQueryString(),
                              Encoding.Unicode);
                Api.SetColumn(session, outgoing, ColumnsInformation.OutgoingColumns["data"], payload.Data);
                Api.SetColumn(session, outgoing, ColumnsInformation.OutgoingColumns["number_of_retries"], 1);
                Api.SetColumn(session, outgoing, ColumnsInformation.OutgoingColumns["size_of_data"], payload.Data.Length);

                if (payload.DeliverBy != null)
                    Api.SetColumn(session, outgoing, ColumnsInformation.OutgoingColumns["deliver_by"], payload.DeliverBy.Value.ToOADate());
                if (payload.MaxAttempts != null)
                    Api.SetColumn(session, outgoing, ColumnsInformation.OutgoingColumns["max_attempts"], payload.MaxAttempts.Value);

                update.Save(bookmark.Bookmark, bookmark.Size, out bookmark.Size);
            }
            Api.JetGotoBookmark(session, outgoing, bookmark.Bookmark, bookmark.Size);
            logger.DebugFormat("Created output message '{0}' for 'rhino.queues://{1}:{2}/{3}/{4}' as NotReady",
                msgId,
                destination.Host,
                destination.Port,
                queue,
                subQueue
                );
            return msgId;
        }