public void Generate(List<Table> tables, Configuration config, IRepositoryGenerator repoGenerator)
        {
            if (config.GenerateClasses)
            {
                var entityGenerator = new EntityGenerator(config, repoGenerator);
                tables.ForEach(m => entityGenerator.Generate(m));
            }

            if (config.GenerateControllers)
            {
                var controllerGenerator = new ControllerGenerator(config);
                tables.ForEach(m =>
                {
                    var pkColumn = m.Columns.FirstOrDefault(x => x.IsPrimaryKey);
                    string idType = (pkColumn == null) ? "int" : pkColumn.Type;
                    controllerGenerator.Generate(m.Name.UppercaseFirst(), idType);
                });
            }
        }
        private void Scaffold()
        {
            var conf = new Configuration();
            conf.Namespace = txtNamespace.Text.Trim();
            conf.OutputPath = txtOutputPath.Text.Trim();
            conf.GenerateClasses = chkGenerateModels.Checked;
            conf.IncludeDataAnnotations = chkIncludeDataAnnotations.Enabled && chkIncludeDataAnnotations.Checked;
            conf.IncludeRepositoryMethods = chkIncludeRepositoryMethods.Enabled && chkIncludeRepositoryMethods.Checked;
            conf.GenerateControllers = chkGenerateControllers.Checked;

            var generator = new CSCodeGenerator();
            generator.Generate(_scaffoldingParams.TablesToScaffold, conf, GetChosenRepoGenerator());
            Process.Start(conf.OutputPath);
        }
 public ControllerGenerator(Configuration config)
 {
     _config = config;
 }
 public EntityGenerator(Configuration config, IRepositoryGenerator repoGenerator)
 {
     _config = config;
     _repositoryGenerator = repoGenerator;
 }