namespace zero.Communication;
public class InterceptorParameters
{
///
/// The current zero context
///
public IZeroContext Context { get; set; }
///
/// Raven document store
///
public IZeroStore Store { get; set; }
///
/// Access to other interceptor methods
///
public IInterceptors Interceptors { get; internal set; }
///
/// Access to operations
///
public IStoreOperations Operations { get; internal set; }
///
/// Parameters from the interceptor which ran on before the operation (only available for completed operations)
///
public Dictionary Properties { get; set; } = new();
///
/// Get a typed property
///
public TProp Property(string key) => Properties.GetValueOrDefault(key);
///
/// Get a typed property
///
public bool TryGetProperty(string key, out TProp property) => Properties.TryGetValue(key, out property);
}