Esempio n. 1
0
        /// <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);
            }
        }
Esempio n. 2
0
        public void Dispose()
        {
            _logger.DebugFormat("Disposing pipeline; releasing handler and decorators.");

            _handlerFactory.Release(_handler);

            foreach (var decorator in _decorators)
            {
                _decoratorFactory.Release(decorator);
            }
        }
Esempio n. 3
0
        public Task <TResult> Query <TArguments, TResult>(TArguments arguments)
        {
            var handler = queryFactory.Resolve <TArguments, TResult>();

            try
            {
                return(handler.Execute(arguments));
            }
            finally
            {
                queryFactory.Release(handler);
            }
        }
Esempio n. 4
0
        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);
            }
        }