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))); } }
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."); } var transInfo = _readIndex.GetTransactionInfo(_writerCheckpoint.Read(), msg.TransactionId.Value); if (transInfo.TransactionOffset < -1 || transInfo.EventStreamId.IsEmptyString()) { throw new Exception( string.Format("Invalid transaction info found for transaction ID {0}. " + "Possibly wrong transaction ID provided. TransactionOffset: {1}, EventStreamId: {2}", msg.TransactionId, transInfo.TransactionOffset, transInfo.EventStreamId.IsEmptyString() ? "<null>" : transInfo.EventStreamId)); } streamId = transInfo.EventStreamId; } 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))); } }
void IHandle <StorageMessage.CheckStreamAccess> .Handle(StorageMessage.CheckStreamAccess msg) { if (msg.Expires < DateTime.Now) { return; } msg.Envelope.ReplyWith(CheckStreamAccess(msg)); }
void IHandle <StorageMessage.CheckStreamAccess> .Handle(StorageMessage.CheckStreamAccess msg) { if (msg.Expires < DateTime.UtcNow) { Log.Debug("Check Stream Access operation has expired for Stream: {0}. Operation Expired at {1}", msg.EventStreamId, msg.Expires); return; } msg.Envelope.ReplyWith(CheckStreamAccess(msg)); }
void IHandle <StorageMessage.CheckStreamAccess> .Handle(StorageMessage.CheckStreamAccess msg) { msg.Envelope.ReplyWith(CheckStreamAccess(msg)); }