コード例 #1
0
        private static void Validate(DataGenerationInfo info)
        {
            var validationErrors = info.GetValidationErrors();

            if (!string.IsNullOrEmpty(validationErrors))
            {
                throw new InvalidOperationException("Validation errors on generation models: " + validationErrors);
            }

            var ctx = new Dictionary <object, object>
            {
                { "info", info },
                { "sources", info.Sources }
            };

            foreach (var col in info.Columns)
            {
                var columnValidationErrors = col.GetValidationErrors(ctx);
                if (!string.IsNullOrEmpty(columnValidationErrors))
                {
                    throw new InvalidOperationException("Validation errors on generation models: " +
                                                        columnValidationErrors);
                }
            }
        }
コード例 #2
0
 private static void CreateColumns(DataTable dt, DataGenerationInfo info)
 {
     foreach (var columnModel in info.Columns)
     {
         var        dataType = UtilDataGeneration.GetCorrespondingDataType(columnModel.DataType);
         DataColumn dc       = new(columnModel.Name, dataType);
         dt.Columns.Add(dc);
     }
 }
コード例 #3
0
        public DataSet Generate(DataGenerationInfo info)
        {
            Validate(info);

            var result = new DataSet();
            var dt     = result.Tables.Add("table");

            CreateColumns(dt, info);
            GenerateData(dt, info);

            return(result);
        }
コード例 #4
0
        private void GenerateData(DataTable dt, DataGenerationInfo info)
        {
            var generatorList = new Dictionary <ColumnDefinitionType, GeneratorBase>();

            for (var i = 0; i < info.RowsToGenerate; i++)
            {
                var dr = dt.NewRow();
                foreach (var columnModel in info.Columns)
                {
                    if (!generatorList.ContainsKey(columnModel.ColumnDefinitionType))
                    {
                        var newGenerator = _generatorFactory.GetInstance(columnModel.ColumnDefinitionType);
                        newGenerator.GenerationInfo = info;
                        generatorList[columnModel.ColumnDefinitionType] = newGenerator;
                    }

                    var generator = generatorList[columnModel.ColumnDefinitionType];
                    dr[columnModel.Name] = generator.Generate(columnModel);
                }

                dt.Rows.Add(dr);
            }
        }