using System; using System.Threading.Tasks; namespace Nethereum.BlockchainProcessing.Processor { public class ProcessorHandler : ProcessorBaseHandler { private Func _action; protected ProcessorHandler() { } public ProcessorHandler(Func action) { _action = action; } public ProcessorHandler(Func action, Func> criteria):base(criteria) { _action = action; } public ProcessorHandler(Func action, Func criteria) : base(criteria) { _action = action; } public ProcessorHandler(Action action, Func> criteria) : base(criteria) { SetAction(action); } public ProcessorHandler(Action action, Func criteria) : base(criteria) { SetAction(action); } private void SetAction(Action action) { Func asyncAction = (t) => { action(t); return Task.FromResult(0); }; _action = asyncAction; } protected override Task ExecuteInternalAsync(T value) { return _action(value); } } }