public void Handle(TRequest request, bool shouldPropogate = false)
        {
            if (IsChainResponsible(request))
            {
                RequestHandler(request);

                if (shouldPropogate && _nextChain != null)
                {
                    _nextChain.Handle(request, true);
                }
            }
            else
            {
                if (_nextChain != null)
                {
                    _nextChain.Handle(request, shouldPropogate);
                }
            }
        }