Exemple #1
0
        public virtual void AddColumn(ColumnDefinitionBase col)
        {
            if (ColumnExists(col.Name))
            {
                throw new Exception(string.Format("A column with the name {0} already exists in the column collection", col.Name));
            }

            if (col is AutoIncrementedColumn && !ColumnSequenceExists(col.Name))
            {
                columnSequence.Add(col.Name, 0);
            }

            if (col is RandomizedColumn)
            {
                if (!randOptions.Keys.Contains(col.Name))
                {
                    randOptions.Add(col.Name, (col as RandomizedColumn).RandomizationOptions);
                }
            }

            definition.Columns.Add(col);
        }
 public override void Visit(ColumnDefinitionBase node) { this.action(node); }
 public override void ExplicitVisit(ColumnDefinitionBase fragment)
 {
     _fragments.Add(fragment);
 }
Exemple #4
0
        /*** File Config Example *************************************************
         * var fileType = FileType.CSV;
         * var outputPath = @"C:\test\test.csv";
         * var columns = new ColumnDefinitionBase[]
         * {
         *      new AutoIncrementedColumn("Incremented1")
         *      {
         *          ColumnOrder = 1,
         *          StartingSequenceNumber = 1000,
         *          IncrementValue = 1
         *      },
         *      new RandomizedColumn("Randomized1")
         *      {
         *          ColumnOrder = 2,
         *          RandomizationOptions = new string[] {"opt,1", "opt2", "opt3"}
         *      },
         *      new DependentColumn("Dependent1")
         *      {
         *          ColumnOrder = 3,
         *          DependsOn = "Randomized1",
         *          Map = new Dictionary<object, string>()
         *                  {
         *                      { "opt,1", "Option 1" },
         *                      { "opt2", "Option 2" },
         *                      { "opt3", "Option 3" },
         *                  }
         *      },
         *      new DependentColumn("Dependent2")
         *      {
         *          ColumnOrder = 3,
         *          DependsOn = "Randomized1",
         *          Calculator = Dependent1Calc
         *      },
         *      new StaticColumn("Static1")
         *      {
         *          ColumnOrder = 4,
         *          Value = "static"
         *      }
         * };
         * var delimiter = ',';
         * var quote = '"';
         * var rowCount = 100000;
         ******************************************************************/


        static void Main(string[] args)
        {
            //init
            var container   = new UnityContainerFactory().GetContainer();
            var bldrFactory = container.Resolve <IImportBuilderFactory>();
            var writer      = container.Resolve <IWriter>();

            /*** File Config *************************************************/
            var fileType   = FileType.CSV;
            var outputPath = @"C:\test2\DrugItems.csv";
            var columns    = new ColumnDefinitionBase[]
            {
                new AutoIncrementedColumn("DrugUnitID")
                {
                    ColumnOrder            = 1,
                    StartingSequenceNumber = 100000,
                    IncrementValue         = 1
                },
                new AutoIncrementedColumn("PickNr")
                {
                    ColumnOrder            = 2,
                    StartingSequenceNumber = 100000,
                    IncrementValue         = 1
                },
                new RandomizedColumn("DrugCode")
                {
                    ColumnOrder          = 3,
                    RandomizationOptions = new string[] { "A", "B", "C" }
                },
                new DependentColumn("Dependent2")
                {
                    ColumnOrder = 3,
                    DependsOn   = "DrugCode",
                    Calculator  = (object val) => val.ToString().ToLower()
                },
            };
            var delimiter = ',';
            var quote     = QuoteType.Double;
            var rowCount  = 20000;
            /******************************************************************/


            var bldr = bldrFactory.GetImportBuilder(fileType);

            if (writer is FileWriter)
            {
                ((FileWriter)writer).OutputPath = outputPath;
            }
            bldr.SetWriter(writer);


            foreach (var col in columns)
            {
                bldr.AddColumn(col);
            }

            if (bldr is DelimitedImportBuilder)
            {
                (bldr as DelimitedImportBuilder).SetDelimiter(delimiter);
            }

            if (bldr is CSVImportBuilder)
            {
                (bldr as CSVImportBuilder).SetQuoteCharacter(quote);
            }

            bldr.SetRowCount(rowCount);


            var st = new Stopwatch();

            st.Start();

            bldr.BuildAndSaveFile();

            st.Stop();
            Console.WriteLine(st.Elapsed);

            Console.ReadKey();
        }