protected virtual async Task<PipelineContinuation> ExecuteContributor(ICommunicationContext context, ContributorCall call) { using ( PipelineLog.Operation(this, "Executing contributor {0}.{1}".With(call.ContributorTypeName, call.Action.Method.Name))) { PipelineContinuation nextStep; try { nextStep = await call.Action(context); } catch (Exception e) { context.Response.StatusCode = 500; context.ServerErrors.Add(new Error { Title = "Fatal error", Message = "An exception was thrown while processing a pipeline contributor", Exception = e }); nextStep = PipelineContinuation.Abort; } return nextStep; } }
bool CanBeExecuted(ContributorCall call) { if (call.Action != null) return true; PipelineLog.WriteWarning("Contributor call for {0} had a null Action.", call.ContributorTypeName); return false; }
protected AbstractContributorMiddleware(ContributorCall call) { ContributorCall = call; ContributorInvoke = call.Action ?? throw new ArgumentNullException(nameof(call.Action)); }
protected virtual PipelineContinuation ExecuteContributor(ICommunicationContext context, ContributorCall call) { using (PipelineLog.Operation(this, "Executing contributor {0}.{1}".With(call.ContributorTypeName, call.Action.Method.Name))) { PipelineContinuation nextStep; try { nextStep = call.Action(context); } catch (Exception e) { context.Response.StatusCode = 500; context.ServerErrors.Add(new Error { Title = "Fatal error", Message = "An exception was thrown while processing a pipeline contributor", Exception = e }); nextStep = PipelineContinuation.Abort; } return(nextStep); } }
public ResponseMiddleware(ContributorCall call) : base(call) { }