/// <summary> /// Initializes a new instance of the <see cref="ProcessingCompletedEventArgs"/> class /// </summary> /// <param name="request">Originating request</param> /// <param name="ex">Exceptions generated from failure</param> public ProcessingFailedEventArgs(ProcessingRequest request, Exception ex) { ProcessingRequest = request; Exception = ex; }
/// <summary> /// Initializes a new instance of the <see cref="ProcessingCompletedEventArgs"/> class /// </summary> /// <param name="request">Originating request</param> /// <param name="resultBody">Optional result of processing</param> public ProcessingCompletedEventArgs(ProcessingRequest request, string resultBody = null) { ProcessingRequest = request; ResultBody = resultBody; }
/// <summary> /// Invoked when the processing of a <see cref="ProcessingRequest"/> fails /// </summary> /// <param name="request"><see cref="ProcessingRequest"/> provided to <see cref="ProcessAsync(ProcessingRequest, CancellationToken)"/></param> /// <param name="exception">Exception generated from failure</param> protected virtual void OnProcessingFailed(ProcessingRequest request, Exception exception) { ProcessingFailed?.Invoke(this, new ProcessingFailedEventArgs(request, exception)); }
/// <summary> /// Invoked when the processing of a <see cref="ProcessingRequest"/> completes successfully /// </summary> /// <param name="request"><see cref="ProcessingRequest"/> provided to <see cref="ProcessAsync(ProcessingRequest, CancellationToken)"/></param> /// <param name="result">Optional result of processing</param> protected virtual void OnProcessingCompleted(ProcessingRequest request, string result = null) { ProcessingCompleted?.Invoke(this, new ProcessingCompletedEventArgs(request, result)); }
/// <summary> /// Processes the job /// </summary> /// <param name="request">Data describing the job</param> /// <param name="cancellationToken"><see cref="CancellationToken"/> to provide to any async actions</param> public abstract Task ProcessAsync(ProcessingRequest request, CancellationToken cancellationToken);
/// <summary> /// Returns whether or not this handler can process the job described by the <see cref="ProcessingRequest"/> /// </summary> /// <param name="request">Data describing the job</param> public abstract bool CanProcess(ProcessingRequest request);