Scoped Runner
H.Necessaire's ScopedRunner is a sugar syntax for leveraging C# using keyword
dotnet add package H.Necessaire
The scoped runner is a simple IDisposable
implementation that's useful for leveraging the usage
keyword sugar syntax for try { } finally { }
.
Example use case
Specific derivatives
There a few specific derived classes for easier usage syntax
TimeMeasurement
using (new TimeMeasurement(x => logger.LogTrace($"DONE Running {processorName} for {action} in {x}")))
{
OperationResult processingResult = await ProcessQdAction(action);
result = processingResult.WithPayload(action).ToQdActionResult();
}
ConsumerScope
class ConsumerScope : ScopedRunner
{
ConsumerScope(ConsumerIdentity consumer)
ConsumerScope(OperationContext operationContext)
ConsumerScope(SyncRequest syncRequest)
}
OperationContextScope
class OperationContextScope : ScopedRunner
{
OperationContextScope(OperationContext operationContext)
OperationContextScope(SyncRequest syncRequest)
}
ProgressiveScope
class ProgressiveScope : ScopedRunner
{
ProgressiveScope(string scopeIdentifier, AsyncEventHandler<ProgressEventArgs> onProgress = null)
}