public async Task <object> Connect(TContext context) { try { await _specification.ExecuteBeforeConnect(context); if (Next != null) { await Next.Connect(context); } else { IMediator mediator; if (context.TryGetService(out mediator)) { await mediator.PublishAsync(context.Message); } else { throw new MediatorIsNotAddedToTheContextException(); } } await _specification.ExecuteAfterConnect(context); } catch (Exception e) { _specification.OnException(e, context); } return(null); }
public async Task <object> Connect(TContext context) { object result = null; try { await _specification.ExecuteBeforeConnect(context); if (Next != null) { await Next.Connect(context); } else { result = await ConnectToPipe(context); } await _specification.ExecuteAfterConnect(context); return(result); } catch (Exception e) { _specification.OnException(e, context); } return(result); }
public async Task <object> Connect(TContext context) { object result = null; try { await _specification.ExecuteBeforeConnect(context); result = await(Next?.Connect(context) ?? ConnectToHandler(context)); await _specification.ExecuteAfterConnect(context); } catch (Exception e) { _specification.OnException(e, context); } return(result); }
public async Task <object> Connect(TContext context) { try { await _specification.ExecuteBeforeConnect(context); if (Next != null) { await Next.Connect(context); } else { await ConnectToHandler(context); } await _specification.ExecuteAfterConnect(context); } catch (Exception e) { _specification.OnException(e, context); } return(null); }