main
 1using Db4objects.Db4o;
 2using Db4objects.Db4o.Config;
 3using Gorilla.Commons.Infrastructure.FileSystem;
 4using gorilla.commons.utility;
 5using momoney.database.transactions;
 6
 7namespace momoney.database.db4o
 8{
 9    public class ConnectionFactory : IConnectionFactory
10    {
11        readonly IConfigureDatabaseStep setup;
12        readonly IConfigureObjectContainerStep setup_container;
13
14        public ConnectionFactory(IConfigureDatabaseStep setup, IConfigureObjectContainerStep setup_container)
15        {
16            this.setup = setup;
17            this.setup_container = setup_container;
18        }
19
20        public DatabaseConnection open_connection_to(File the_path_to_the_database_file)
21        {
22            var configuration = Db4oFactory.NewConfiguration();
23            setup.configure(configuration);
24            return new ObjectDatabaseConnection(get_container(the_path_to_the_database_file, configuration));
25        }
26
27        IObjectContainer get_container(File the_path_to_the_database_file, IConfiguration configuration)
28        {
29            return Db4oFactory
30                .OpenFile(configuration, the_path_to_the_database_file.path)
31                .and_configure_with(setup_container);
32        }
33    }
34}