public async Task <IContinuation> Handle(Envelope envelope) { try { var chain = _invoker.FindChain(envelope); if (chain == null) { return(null); } return(await ExecuteChain(envelope, chain).ConfigureAwait(false)); } catch (EnvelopeDeserializationException ex) { return(new DeserializationFailureContinuation(ex)); } }
public IContinuation Handle(Envelope envelope) { try { var chain = _invoker.FindChain(envelope); if (chain == null) { return(null); } return(chain.IsAsync ? new AsyncChainExecutionContinuation(() => ExecuteChain(envelope, chain)) : ExecuteChain(envelope, chain)); } catch (EnvelopeDeserializationException ex) { return(new DeserializationFailureContinuation(ex)); } }