public IHandler CreateChainOfResponsibility() { return(_handlers.Reverse().Aggregate( new List <ChainHandler>(), (chain, handler) => { ChainHandler last = null; if (chain.Count > 0) { last = chain.Last(); } chain.Add(new ChainHandler(handler, last)); return chain; } ).Last()); }
public ChainHandler SetNextHandler(ChainHandler nextHandler) { return(new ChainHandler(_handler, nextHandler)); }
public ChainHandler(IHandler handler, ChainHandler nextHandler) { _handler = handler; _nextHandler = nextHandler; }
public ChainHandler SetNextHandler(ChainHandler nextHandler) { return new ChainHandler(_handler, nextHandler); }