コード例 #1
0
        /// <summary>
        /// Builds the product loader tasks.
        /// </summary>
        /// <returns>A task used to load the product subcategory table.</returns>
        private ITask BuildProductTask()
        {
            using (var builder = new SimpleDataflowBuilder <Product>())
            {
                var productFile = Path.Combine(Program.Options.SourcePath, "Product.csv");

                var csvConfiguration = new CsvConfiguration {
                    HasHeaderRecord = false, Delimiter = "\t"
                };
                csvConfiguration.RegisterClassMap <ProductFileMap>();

                return(builder
                       .CsvSource(productFile, csvConfiguration)
                       .Map(x =>
                {
                    x.ProductSubcategoryKey =
                        this.productSubcategoryMapper.Map(
                            x.ProductSubcategoryAlternateKey.ToString(CultureInfo.CurrentCulture));

                    return x;
                })
                       .BulkLoad(
                           "dbo.DimProduct",
                           this.targetFactory,
                           new Dictionary <string, string>()
                {
                    { "ProductSubcategoryKey", "ProductSubcategoryKey" },
                    { "AlternateKey", "ProductAlternateKey" },
                    { "Name", "EnglishProductName" },
                })
                       .Build("Load product dimension"));
            }
        }
コード例 #2
0
        /// <summary>
        /// Builds the product category loader tasks.
        /// </summary>
        /// <returns>A task used to load the product category table.</returns>
        private ITask BuildProductCategoryTask()
        {
            using (var builder = new SimpleDataflowBuilder <ProductCategory>())
            {
                var categoryFile = Path.Combine(Program.Options.SourcePath, "ProductCategory.csv");

                var csvConfiguration = new CsvConfiguration {
                    HasHeaderRecord = false, Delimiter = "\t"
                };
                csvConfiguration.RegisterClassMap <ProductCategoryFileMap>();

                return(builder
                       .CsvSource(categoryFile, csvConfiguration)
                       .BulkLoad(
                           "dbo.DimProductCategory",
                           this.targetFactory,
                           new Dictionary <string, string>()
                {
                    { "AlternateKey", "ProductCategoryAlternateKey" },
                    { "Name", "EnglishProductCategoryName" },
                    { "SpanishName", "SpanishProductCategoryName" },
                    { "FrenchName", "FrenchProductCategoryName" }
                })
                       .Build("Load product category dimension"));
            }
        }
コード例 #3
0
ファイル: CurrencyLoader.cs プロジェクト: jsnape/deeply
        /// <summary>
        /// Builds a task to load the currency dimension.
        /// </summary>
        /// <returns>A task for loading the currency dimension.</returns>
        public ITask Build()
        {
            using (var builder = new SimpleDataflowBuilder<Currency>())
            {
                var currencyFile = Path.Combine(Program.Options.SourcePath, "currency.csv");

                var csvConfiguration = new CsvConfiguration { HasHeaderRecord = false, Delimiter = "\t" };
                csvConfiguration.RegisterClassMap<CurrencyFileMap>();

                return builder
                    .CsvSource(currencyFile, csvConfiguration)
                    .BulkLoad(
                        "dbo.DimCurrency",
                        this.targetFactory,
                        new Dictionary<string, string>()
                        {
                            { "AlternateKey", "CurrencyAlternateKey" },
                            { "Name", "CurrencyName" }
                        })
                    .Build("Load currency dimension");
            }
        }
コード例 #4
0
        /// <summary>
        /// Builds a task to load the currency dimension.
        /// </summary>
        /// <returns>A task for loading the currency dimension.</returns>
        public ITask Build()
        {
            using (var builder = new SimpleDataflowBuilder <Currency>())
            {
                var currencyFile = Path.Combine(Program.Options.SourcePath, "currency.csv");

                var csvConfiguration = new CsvConfiguration {
                    HasHeaderRecord = false, Delimiter = "\t"
                };
                csvConfiguration.RegisterClassMap <CurrencyFileMap>();

                return(builder
                       .CsvSource(currencyFile, csvConfiguration)
                       .BulkLoad(
                           "dbo.DimCurrency",
                           this.targetFactory,
                           new Dictionary <string, string>()
                {
                    { "AlternateKey", "CurrencyAlternateKey" },
                    { "Name", "CurrencyName" }
                })
                       .Build("Load currency dimension"));
            }
        }
コード例 #5
0
ファイル: ProductLoader.cs プロジェクト: jsnape/deeply
        /// <summary>
        /// Builds the product loader tasks.
        /// </summary>
        /// <returns>A task used to load the product subcategory table.</returns>
        private ITask BuildProductTask()
        {
            using (var builder = new SimpleDataflowBuilder<Product>())
            {
                var productFile = Path.Combine(Program.Options.SourcePath, "Product.csv");

                var csvConfiguration = new CsvConfiguration { HasHeaderRecord = false, Delimiter = "\t" };
                csvConfiguration.RegisterClassMap<ProductFileMap>();

                return builder
                    .CsvSource(productFile, csvConfiguration)
                    .Map(x =>
                    {
                        x.ProductSubcategoryKey =
                            this.productSubcategoryMapper.Map(
                                x.ProductSubcategoryAlternateKey.ToString(CultureInfo.CurrentCulture));

                        return x;
                    })
                    .BulkLoad(
                        "dbo.DimProduct",
                        this.targetFactory,
                        new Dictionary<string, string>()
                        {
                            { "ProductSubcategoryKey", "ProductSubcategoryKey" },
                            { "AlternateKey", "ProductAlternateKey" },
                            { "Name", "EnglishProductName" },
                        })
                    .Build("Load product dimension");
            }
        }
コード例 #6
0
ファイル: ProductLoader.cs プロジェクト: jsnape/deeply
        /// <summary>
        /// Builds the product category loader tasks.
        /// </summary>
        /// <returns>A task used to load the product category table.</returns>
        private ITask BuildProductCategoryTask()
        {
            using (var builder = new SimpleDataflowBuilder<ProductCategory>())
            {
                var categoryFile = Path.Combine(Program.Options.SourcePath, "ProductCategory.csv");

                var csvConfiguration = new CsvConfiguration { HasHeaderRecord = false, Delimiter = "\t" };
                csvConfiguration.RegisterClassMap<ProductCategoryFileMap>();

                return builder
                    .CsvSource(categoryFile, csvConfiguration)
                    .BulkLoad(
                        "dbo.DimProductCategory",
                        this.targetFactory,
                        new Dictionary<string, string>()
                        {
                            { "AlternateKey", "ProductCategoryAlternateKey" },
                            { "Name", "EnglishProductCategoryName" },
                            { "SpanishName", "SpanishProductCategoryName" },
                            { "FrenchName", "FrenchProductCategoryName" }
                        })
                    .Build("Load product category dimension");
            }
        }