Beispiel #1
0
        public static IEtlProcess Resolve(IEtlForexConfig config, string dbName)
        {
            using (IUnityContainer container = new UnityContainer())
            {
                container.RegisterInstance(typeof(IEtlForexConfig), config);

                container.RegisterType <ISourceSpecification, ForexiteSourceSpecification>();
                var source = container.Resolve <ISourceSpecification>();

                container.RegisterType(typeof(IExtracter <>), typeof(Extracter));
                container.RegisterType(typeof(ITransformer <>), typeof(Transformer));
                container.RegisterType(typeof(ILoader <>), typeof(Loader));

                container.RegisterType(typeof(IManifest <>), typeof(Manifest),
                                       new InjectionConstructor(new object[] { source, dbName }));

                container.RegisterType(typeof(IFileCompression), source.FileCompressionHandler, new InjectionConstructor());

                container.RegisterType <ICleaner, Cleaner>();
                container.RegisterType <IBinner, Binner>();

                container.RegisterType <IConnectionFactory, SQLiteConnectionFactory>(
                    new InjectionConstructor(new object[] { new DirectoryInfo(config.RootSQLiteFolder), dbName }));

                container.RegisterType <IFinancialRepository, FinancialRepository>();

                container.RegisterType(typeof(IEtlProcess), typeof(EtlProcess <FormatObject>));
                return(container.Resolve <IEtlProcess>());
            }
        }
Beispiel #2
0
 public Extracter(ISourceSpecification source, IEtlForexConfig config)
 {
     Source = source;
     TempDownloadLocation = new DirectoryInfo(Path.Combine(config.RootTempFolder, "Extracter"));
     Aggregator           = new DownloadAggregator(Source, TempDownloadLocation);
 }
Beispiel #3
0
        public Transformer(IFileCompression compression, ICleaner cleaner, IBinner binner, IEtlForexConfig config)
            : this()
        {
            TempLocation = new DirectoryInfo(Path.Combine(config.RootTempFolder, "Transformer"));

            Compression = compression;
            Cleaner     = cleaner;
            Binner      = binner;
        }
Beispiel #4
0
        public Transformer(ISourceSpecification source, IFileCompression compression, ICleaner cleaner, IBinner binner, IEtlForexConfig config)
        {
            TempLocation = new DirectoryInfo(Path.Combine(config.RootTempFolder, "Transformer"));

            Source      = source;
            Compression = compression;
            Cleaner     = cleaner;
            Binner      = binner;
        }