Exemple #1
0
        private static RequestHandler <TResponse> CreateRequestHandler <TResponse>(IAmARequest <TResponse> request)
        {
            var handlerType = typeof(RequestHandlerImpl <,>)
                              .MakeGenericType(request.GetType(), typeof(TResponse));

            return((RequestHandler <TResponse>)Activator.CreateInstance(handlerType));
        }
 public abstract Task <TResponse> Handle(IAmARequest <TResponse> request, IServiceFactory factory);
Exemple #3
0
        /// <inheritdoc cref="IMediate" />
        public async Task <TResponse> Request <TResponse>(IAmARequest <TResponse> request)
        {
            var handler = CreateRequestHandler(request);

            return(await handler.Handle(request, _factory).ConfigureAwait(false));
        }
 /// <summary>
 /// Make the request to the actual <see cref="IHandleRequests{TRequest, TResponse}"/>
 /// implementation.
 /// </summary>
 /// <param name="request">The request.</param>
 /// <param name="factory">The response to that request.</param>
 /// <returns>The <typeparamref name="TResponse"/> from the <typeparamref name="TRequest"/>.</returns>
 public override async Task <TResponse> Handle(IAmARequest <TResponse> request, IServiceFactory factory)
 {
     return(await Handle((TRequest)request, factory));
 }