public static TransactionalContextFactory Create(GraphDatabaseFacade.SPI spi, ThreadToStatementContextBridge txBridge, PropertyContainerLocker locker) { System.Func <GraphDatabaseQueryService> queryService = lazySingleton(spi.queryService); System.Func <Kernel> kernel = lazySingleton(spi.kernel); Neo4jTransactionalContext.Creator contextCreator = (tx, initialStatement, executingQuery) => new Neo4jTransactionalContext(queryService(), txBridge, locker, tx, initialStatement, executingQuery, kernel()); return(new Neo4jTransactionalContextFactory(txBridge, contextCreator)); }
public static TransactionalContextFactory Create(GraphDatabaseQueryService queryService, PropertyContainerLocker locker) { DependencyResolver resolver = queryService.DependencyResolver; ThreadToStatementContextBridge txBridge = resolver.ResolveDependency(typeof(ThreadToStatementContextBridge)); Kernel kernel = resolver.ResolveDependency(typeof(Kernel)); Neo4jTransactionalContext.Creator contextCreator = (tx, initialStatement, executingQuery) => new Neo4jTransactionalContext(queryService, txBridge, locker, tx, initialStatement, executingQuery, kernel); return(new Neo4jTransactionalContextFactory(txBridge, contextCreator)); }
// Please use the factory methods above to actually construct an instance private Neo4jTransactionalContextFactory(System.Func <Statement> statementSupplier, Neo4jTransactionalContext.Creator contextCreator) { this._statementSupplier = statementSupplier; this._contextCreator = contextCreator; }