Beispiel #1
0
        public Guid QueueWriteEvents(
            Guid key,
            string streamId,
            long expectedVersion,
            Event[] events,
            ClaimsPrincipal principal,
            Action <ClientMessage.WriteEventsCompleted> action)
        {
            var corrId = Guid.NewGuid();

            AddPendingRequest(corrId);
            var message = new ClientMessage.WriteEvents(
                corrId,
                corrId,
                Writer.Envelope,
                false,
                streamId,
                expectedVersion,
                events,
                principal);

            _pendingWrites.CaptureCallback(corrId, action);

            _writerQueueSet.AddToQueue(key, message);

            WorkQueue(key);
            return(corrId);
        }
Beispiel #2
0
            public void QueuePendingWrite(
                Guid key,
                Guid corrId,
                Action <ClientMessage.WriteEventsCompleted> action,
                ClientMessage.WriteEvents message,
                RequestResponseDispatcher <ClientMessage.WriteEvents, ClientMessage.WriteEventsCompleted> writer)
            {
                lock (_lockObject) {
                    AddPendingRequest(corrId);
                    _pendingWrites.CaptureCallback(corrId, action);

                    _writerQueueSet.AddToQueue(key, message);

                    WorkQueue(key, writer);
                }
            }