Esempio n. 1
0
        private static InversionContainer build_items_for_container(ConfigurationPropertyHolder configuration_property_holder)
        {
            configuration_property_holder.DatabaseType = DatabaseTypeSynonyms.convert_database_type_synonyms(configuration_property_holder.DatabaseType);

            set_up_current_mappings(configuration_property_holder);

            Logger multi_logger = GetMultiLogger(configuration_property_holder);

            var file_system = new DotNetFileSystemAccess(configuration_property_holder);

            var database = DatabaseBuilder.build(file_system, configuration_property_holder);

            // forcing a build of database to initialize connections so we can be sure server/database have values
            database.initialize_connections(configuration_property_holder);
            configuration_property_holder.ServerName       = database.server_name;
            configuration_property_holder.DatabaseName     = database.database_name;
            configuration_property_holder.ConnectionString = database.connection_string;

            var known_folders    = KnownFoldersBuilder.build(file_system, configuration_property_holder);
            var log_factory      = new MultipleLoggerLogFactory();
            var crypto_service   = new MD5CryptographicService();
            var hash_generator   = new DefaultHashGenerator(crypto_service);
            var db_migrator      = new DefaultDatabaseMigrator(database, hash_generator, configuration_property_holder);
            var version_resolver = VersionResolverBuilder.build(file_system, configuration_property_holder);
            var environment_set  = new DefaultEnvironmentSet(configuration_property_holder);
            var initializer      = new FileSystemInitializer(known_folders);

            HardcodedContainer.Register <ConfigurationPropertyHolder>(configuration_property_holder);
            HardcodedContainer.Register <FileSystemAccess>(file_system);
            HardcodedContainer.Register <Database>(database);
            HardcodedContainer.Register <KnownFolders>(known_folders);
            HardcodedContainer.Register <LogFactory>(log_factory);
            HardcodedContainer.Register <Logger>(multi_logger);
            HardcodedContainer.Register <CryptographicService>(crypto_service);
            HardcodedContainer.Register <DatabaseMigrator>(db_migrator);
            HardcodedContainer.Register <VersionResolver>(version_resolver);
            HardcodedContainer.Register <EnvironmentSet>(environment_set);
            HardcodedContainer.Register <Initializer>(initializer);


            return(HardcodedContainer.Instance);
        }
 public override void Context()
 {
     environment_set = new DefaultEnvironmentSet(default_configuration);
 }