コード例 #1
0
        private StorageMessage.CheckStreamAccessCompleted CheckStreamAccess(StorageMessage.CheckStreamAccess msg)
        {
            string streamId = msg.EventStreamId;

            try
            {
                if (msg.EventStreamId == null)
                {
                    if (msg.TransactionId == null)
                    {
                        throw new Exception("No transaction ID specified.");
                    }
                    streamId = _readIndex.GetEventStreamIdByTransactionId(msg.TransactionId.Value);
                    if (streamId == null)
                    {
                        throw new Exception(string.Format("No transaction with ID {0} found.", msg.TransactionId));
                    }
                }
                var result = _readIndex.CheckStreamAccess(streamId, msg.AccessType, msg.User);
                return(new StorageMessage.CheckStreamAccessCompleted(msg.CorrelationId, streamId, msg.TransactionId, msg.AccessType, result));
            }
            catch (Exception exc)
            {
                Log.ErrorException(exc, "Error during processing CheckStreamAccess({0}, {1}) request.", msg.EventStreamId, msg.TransactionId);
                return(new StorageMessage.CheckStreamAccessCompleted(msg.CorrelationId, streamId, msg.TransactionId,
                                                                     msg.AccessType, new StreamAccess(false)));
            }
        }
コード例 #2
0
        public void Handle(StorageMessage.StreamIdFromTransactionIdRequest message)
        {
            if (message.CancellationToken.IsCancellationRequested)
            {
                message.Envelope.ReplyWith(new StorageMessage.OperationCancelledMessage(message.CancellationToken));
            }
            var streamId = _readIndex.GetEventStreamIdByTransactionId(message.TransactionId);

            message.Envelope.ReplyWith(new StorageMessage.StreamIdFromTransactionIdResponse(streamId));
        }
コード例 #3
0
 public TStreamId GetEventStreamIdByTransactionId(long transactionId) =>
 _readIndex.GetEventStreamIdByTransactionId(transactionId);