/// <inheritdoc /> public override Func <Func <TMessageType, CancellationToken, Task>, Func <TMessageType, CancellationToken, Task> > BuildDecorator() { if (this.keySelector == null) { throw KeySelectorMissingException.CreateDefault(); } return(innerHandler => new NoDuplicatesDecorator <TMessageType, TKeyType>(innerHandler, this.keySelector, this.equalityComparer).HandleMessageAsync); }
internal ChainDecorator <TMessageType> Build(Func <TMessageType, CancellationToken, Task> nextHandler) { if (this.KeySelectorValue == null) { throw KeySelectorMissingException.CreateDefault(); } return(new SemaphoreWithKeyDecorator <TMessageType, TKeyType>(nextHandler, this)); }