private void btnGenerateLists_Click(object sender, EventArgs e)
        {
            string databaseName      = txtDatabaseName.Text;
            string dataSource        = txtDataSource.Text;
            string initialCatalog    = txtInitialCatalog.Text;
            string userId            = txtUserId.Text;
            string password          = txtPassword.Text;
            bool   trustedConnection = chkTrustedConnection.Checked;
            string schema            = txtSchema.Text;

            SprocDataLayerGenerator.PredicateFunctions predicateFunctions =
                new SprocDataLayerGenerator.PredicateFunctions();


            MetaInformationSchemaManager metaInformationSchemaManager = //_metaInformationSchemaManager;
                                                                        new MetaInformationSchemaManager(databaseName,
                                                                                                         dataSource,
                                                                                                         initialCatalog,
                                                                                                         userId,
                                                                                                         password,
                                                                                                         trustedConnection,
                                                                                                         schema);

            DataLayerGenerator dataLayerGenerator = //_sprocDataLayerGenerator;
                                                    new DataLayerGenerator(metaInformationSchemaManager,
                                                                           this.GetType().Namespace);

            dataLayerGenerator.AssembliesGeneratedInMemory = _sprocDataLayerGenerator.AssembliesGeneratedInMemory;

            bool overwriteExisting = chkOverwriteExistingDtos.Checked;

            if (dataLayerGenerator.AssembliesGeneratedInMemory.Count == 0)
            {
                MessageBox.Show("you must create dtos before generating lists based upon dtos, check the app.config file for the settings named CommonLibraryDllLocation and CurrentAppRunningExeLocation and set the path appropriately to your environment");
                btnGenerateLists.Enabled = false;
            }
            else
            {
                List <string> tablesToGen = new List <string>();
                List <MetaInformationSchema> schemasToGen = new List <MetaInformationSchema>();

                if (this.treeAvailableTables.Nodes.Count > 0)
                {
                    foreach (TreeNode node in treeAvailableTables.Nodes)
                    {
                        if (node.Checked)
                        {
                            tablesToGen.Add(node.Text);
                        }
                    }
                }

                if (tablesToGen.Count > 0)
                {
                    foreach (string tableName in tablesToGen)
                    {
                        predicateFunctions.TableNameHolder = tableName;
                        schemasToGen.AddRange(metaInformationSchemaManager.MetaDataList.FindAll(predicateFunctions.FindMetaInformationSchemaByTableName));
                    }
                }
                dataLayerGenerator.GenerateListClasses(schemasToGen, overwriteExisting);
                MessageBox.Show("List Generation Complete");
            }
            btnTestDataAccess.Enabled = true;
        }
        private void btnGetCustomSprocs_Click(object sender, EventArgs e)
        {
            _customSprocs.Clear();
            treeCustomSprocs.Nodes.Clear();

            string databaseName      = txtDatabaseName.Text;
            string dataSource        = txtDataSource.Text;
            string initialCatalog    = txtInitialCatalog.Text;
            string userId            = txtUserId.Text;
            string password          = txtPassword.Text;
            bool   trustedConnection = chkTrustedConnection.Checked;
            string schema            = txtSchema.Text;

            _databaseSmoObjectsAndSettings = new CommonLibrary.DatabaseSmoObjectsAndSettings(databaseName,
                                                                                             dataSource,
                                                                                             initialCatalog,
                                                                                             userId,
                                                                                             password,
                                                                                             trustedConnection);

            _dataLayerGenerator = new DataLayerGenerator(_databaseSmoObjectsAndSettings,
                                                         this.GetType().Namespace);

            SprocDataLayerGenerator.PredicateFunctions predicateFunctions = new SprocDataLayerGenerator.PredicateFunctions();
            List <StoredProcedure> customSprocsNotGenerated = new List <StoredProcedure>();


            CommonLibrary.DatabaseSmoObjectsAndSettings databaseSmoObjectsAndSettings =
                new CommonLibrary.DatabaseSmoObjectsAndSettings(databaseName,
                                                                dataSource,
                                                                initialCatalog,
                                                                userId,
                                                                password,
                                                                trustedConnection,
                                                                schema);

            SprocGenerator sprocGenerator = new SprocGenerator(databaseName,
                                                               dataSource,
                                                               initialCatalog,
                                                               userId,
                                                               password,
                                                               trustedConnection,
                                                               schema);

            _sprocGenerator = sprocGenerator;
            List <StoredProcedure> sprocsGenerated = _sprocGenerator.GetStoredProcedures();

            if (sprocsGenerated != null)
            {
                foreach (StoredProcedure sproc in databaseSmoObjectsAndSettings.Database_Property.StoredProcedures)
                {
                    predicateFunctions.SprocNameHolder = sproc.Name;
                    if (!(sprocsGenerated.FindAll(predicateFunctions.FindSprocGeneratedBySprocName).Count > 0))
                    {
                        customSprocsNotGenerated.Add(sproc);
                    }
                }
            }

            if (customSprocsNotGenerated.Count > 0)
            {
                foreach (StoredProcedure customSproc in customSprocsNotGenerated)
                {
                    if (!customSproc.IsSystemObject)
                    {
                        treeCustomSprocs.Nodes.Add(customSproc.Name);
                        _customSprocs.Add(customSproc);
                    }
                }
            }
            btnGenerateCustomSprocDtos.Enabled = true;
            chkSelectAll.Enabled = true;
        }
        private void btnGenerateDtos_Click(object sender, EventArgs e)
        {
            SprocDataLayerGenerator.PredicateFunctions predicateFunctions = new SprocDataLayerGenerator.PredicateFunctions();

            string databaseName      = txtDatabaseName.Text;
            string dataSource        = txtDataSource.Text;
            string initialCatalog    = txtInitialCatalog.Text;
            string userId            = txtUserId.Text;
            string password          = txtPassword.Text;
            bool   trustedConnection = chkTrustedConnection.Checked;
            string schema            = txtSchema.Text;

            MetaInformationSchemaManager metaInformationSchemaManager =
                new MetaInformationSchemaManager(databaseName,
                                                 dataSource,
                                                 initialCatalog,
                                                 userId,
                                                 password,
                                                 trustedConnection,
                                                 schema);

            _metaInformationSchemaManager = metaInformationSchemaManager;

            DataLayerGenerator dataLayerGenerator = new DataLayerGenerator(metaInformationSchemaManager,
                                                                           this.GetType().Namespace);

            _sprocDataLayerGenerator = dataLayerGenerator;

            bool overwriteExisting = chkOverwriteExistingDtos.Checked;

            List <string> tablesToGen = new List <string>();
            List <MetaInformationSchema> schemasToGen = new List <MetaInformationSchema>();

            if (this.treeAvailableTables.Nodes.Count > 0)
            {
                foreach (TreeNode node in treeAvailableTables.Nodes)
                {
                    if (node.Checked)
                    {
                        tablesToGen.Add(node.Text);
                    }
                }
            }

            if (tablesToGen.Count > 0)
            {
                foreach (string tableName in tablesToGen)
                {
                    predicateFunctions.TableNameHolder = tableName;
                    schemasToGen.AddRange(metaInformationSchemaManager.MetaDataList.FindAll(predicateFunctions.FindMetaInformationSchemaByTableName));
                }
            }


            dataLayerGenerator.GenerateDtoClasses(schemasToGen, overwriteExisting);
            //predicateFunctions.TableNameHolder = "TblGrid";
            //MetaInformationSchema metaInformationSchema =
            //    metaInformationSchemaManager.MetaDataList.Find(predicateFunctions.FindMetaInformationSchemaByTableName);
            //dataLayerGenerator.GenerateOneDtoClass(metaInformationSchema, overwriteExisting);
            MessageBox.Show("Dto Generation Complete");
            btnGenerateLists.Enabled = true;
        }