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))); } }
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)); }
public TStreamId GetEventStreamIdByTransactionId(long transactionId) => _readIndex.GetEventStreamIdByTransactionId(transactionId);