private void ExecuteHandler(OneWayRequest request, IOneWayRequestHandler handler) { try { BeforeHandle(request); handler.Handle(request); AfterHandle(request); } catch (Exception e) { OnHandlerException(request, e); } }
public void ProcessOneWayRequestsAsync(OneWayRequest[] requests, Action<AsyncCompletedEventArgs> callback) { var worker = new BackgroundWorker(); worker.DoWork += (sender, args) => args.Result = requestProcessor.Process(requests); worker.RunWorkerCompleted += (sender, args) => { if (args.Error == null) { callback(new AsyncCompletedEventArgs(null, false, null)); } else { callback(new AsyncCompletedEventArgs(args.Error, false, null)); } }; worker.RunWorkerAsync(); }
protected virtual void OnHandlerException(OneWayRequest request, Exception exception) { logger.Error("RequestProcessor: unhandled exception while handling request!", exception); }
private void ExecuteHandler(OneWayRequest request, IOneWayRequestHandler handler) { BeforeHandle(request); handler.Handle(request); AfterHandle(request); }
private void DispatchRequestsToHandlers(OneWayRequest[] requests) { foreach (var request in requests) { using (var handler = (IOneWayRequestHandler)IoC.Container.Resolve(GetHandlerTypeFor(request))) { try { ExecuteHandler(request, handler); } finally { IoC.Container.Release(handler); } } } }
/// <summary> /// Called when [handler exception]. /// </summary> /// <param name="request">The request.</param> /// <param name="exception">The exception.</param> protected virtual void OnHandlerException(OneWayRequest request, Exception exception) { _logger.Error(string.Format("{0}: unhandled exception while handling request!", GetType().Name), exception); }
/// <summary> /// Called when a handler exception occurs. /// </summary> /// <param name="request">The request.</param> /// <param name="exception">The exception.</param> protected override void OnHandlerException(OneWayRequest request, Exception exception) { _committable = false; if (ShouldLogException(exception)) { PopulateExceptionData(exception); base.OnHandlerException(request, exception); } }
public abstract void Handle(OneWayRequest request);
public void ProcessOneWayRequestsAsync(OneWayRequest[] requests, Action<AsyncCompletedEventArgs> callback) { var asyncResult = BeginProcessOneWayRequests(requests, null, null); ThreadPool.RegisterWaitForSingleObject(asyncResult.AsyncWaitHandle, (state, timedout) => ProcessOneWayRequestsCompleted((IAsyncResult)state, callback), asyncResult, -1, true); }
public IAsyncResult BeginProcessOneWayRequests(OneWayRequest[] requests, AsyncCallback callback, object asyncState) { return processOneWayRequestsAction.BeginInvoke(requests, callback, asyncState); }
public ProcessOneWayRequestsInputElement(IOneWayRequestHandler requestHandler, OneWayRequest request) { RequestHandler = requestHandler; Request = request; }
public IAsyncResult BeginProcessOneWayRequests(OneWayRequest[] requests, AsyncCallback callback, object asyncState) { throw new NotSupportedException(); }
private void DispatchRequestsToHandlers(OneWayRequest[] requests) { foreach (var request in requests) { try { BeforeResolvingRequestHandler(request); using (var handler = (IOneWayRequestHandler)IoC.Container.Resolve(GetOneWayRequestHandlerTypeFor(request))) { try { ExecuteHandler(request, handler); } finally { IoC.Container.Release(handler); } } } catch (Exception e) { logger.Error(e); throw; } } }
protected virtual void OnHandlerException(OneWayRequest request, Exception exception) { }