/// <summary> /// Executes a query handler based on the query type. /// </summary> /// <typeparam name="TQuery">A query type</typeparam> /// <typeparam name="TResult">A query result type</typeparam> /// <param name="query">An instance of a query with data</param> /// <returns>A collection of query results</returns> public IEnumerable <TResult> Execute <TQuery, TResult>(TQuery query) where TQuery : IQuery { var queryHandler = _queryHandlerFactory.Create <TQuery>(); try { return(queryHandler.Execute <TResult>(query)); } finally { _queryHandlerFactory.Release(queryHandler); } }
public void Dispose() { _logger.DebugFormat("Disposing pipeline; releasing handler and decorators."); _handlerFactory.Release(_handler); foreach (var decorator in _decorators) { _decoratorFactory.Release(decorator); } }
public Task <TResult> Query <TArguments, TResult>(TArguments arguments) { var handler = queryFactory.Resolve <TArguments, TResult>(); try { return(handler.Execute(arguments)); } finally { queryFactory.Release(handler); } }
public TResult Query <TArguments, TResult>(TArguments arguments) where TArguments : IQuery { var handlers = queryHandlerFactory.Resolve <TArguments, TResult>(); try { return(handlers.Handle(arguments)); } finally { queryHandlerFactory.Release(handlers); } }