private void cmdGenerate_Click(object sender, EventArgs e)
        {
            try
            {
                string message = string.Empty;

                if (!valid(out message))
                {
                    MessageBox.Show(message, "Invalid", MessageBoxButtons.OK, MessageBoxIcon.Question);
                    return;
                }

                table            = txtTableName.Text.Trim();
                project          = txtProjectLocation.Text.Trim();
                connectionString = string.Format("data source={0};database={1};Integrated Security=false;user id={2};password={3};", txtDatabaseServer.Text.Trim(), txtDatabaseName.Text.Trim(), txtDatabaseUser.Text.Trim(), txtDatabasePassword.Text.Trim());

                cmdGenerate.Enabled = false;
                cmdClear.Enabled    = false;
                cmdExit.Enabled     = false;

                //SqlConnection con = new SqlConnection("Persist Security Info=False;User ID=CGUser; Password=AITAgradut123; Initial Catalog=CodeGenerator;Data Source=AGRADUT3\\SQLEXPRESS");
                //SqlCommand cmd = new SqlCommand();
                //cmd.CommandType = CommandType.Text;
                //cmd.CommandText = "INSERT INTO [GenerateLog] VALUES ('" + frmLogin.userName + "', '" + Environment.MachineName + "', '" + DateTime.Now + "', '" + project + "', '" + txtConnectionString.Text.Trim() + "', '" + table + "')";
                //cmd.Connection = con;
                //con.Open();

                //int res = cmd.ExecuteNonQuery();

                //con.Close();

                if (1 == 1) //(res > 0)
                {
                    using (DBOperationManager dbop = new DBOperationManager(connectionString, grdColumns, table))
                    {
                        if (chkTable.Checked)
                        {
                            txtLog.Text += "\n\n" + "Creating Table ......" + "\n\n";
                            if (dbop.createTable(out message))
                            {
                                txtLog.Text += "\n\n" + "Table Created Successfully." + "\n\n";
                            }
                            else
                            {
                                txtLog.Text += "\n\n" + "Error Creating Table." + "\n\n" + message;
                            }
                        }

                        if (chkSp.Checked)
                        {
                            txtLog.Text += "\n\n" + "Creating Stored Procedures ......" + "\n\n";

                            if (dbop.createStoredProcedures(out message))
                            {
                                txtLog.Text += "\n\n" + "Stored Procedures Created Successfully." + "\n\n";
                            }
                            else
                            {
                                txtLog.Text += "\n\n" + "Error Creating Stored Procedures." + "\n\n" + message;
                            }
                        }
                    }

                    using (FileOperationManager fop = new FileOperationManager(grdColumns, project, table))
                    {
                        txtLog.Text += "\n\n" + "Creating Project Template ......" + "\n\n";
                        fop.createProjectTemplate();
                        txtLog.Text += "\n\n" + "Project Template Created Successfully ......" + "\n\n";

                        if (chkClasses.Checked)
                        {
                            txtLog.Text += "\n\n" + "Creating Property Class ......" + "\n\n";

                            if (fop.createPropertyClass(out message))
                            {
                                txtLog.Text += "\n\n" + "Property Class Created Successfully." + "\n\n";
                            }
                            else
                            {
                                txtLog.Text += "\n\n" + "Error Creating Property Class." + "\n\n" + message;
                            }

                            txtLog.Text += "\n\n" + "Creating Provider Class ......" + "\n\n";

                            if (fop.createProviderClass(out message))
                            {
                                txtLog.Text += "\n\n" + "Provider Class Created Successfully." + "\n\n";
                            }
                            else
                            {
                                txtLog.Text += "\n\n" + "Error Creating Provider Class." + "\n\n" + message;
                            }

                            txtLog.Text += "\n\n" + "Creating Manager Class ......" + "\n\n";
                            if (fop.createManagerClass(out message))
                            {
                                txtLog.Text += "\n\n" + "Manager Class Created Successfully." + "\n\n";
                            }
                            else
                            {
                                txtLog.Text += "\n\n" + "Error Creating Manager Class." + "\n\n" + message;
                            }
                        }

                        if (chkAdminPages.Checked)
                        {
                            txtLog.Text += "\n\n" + "Creating Admin View Page ......" + "\n\n";
                            if (fop.createAdminViewPage(out message))
                            {
                                txtLog.Text += "\n\n" + "Admin View Page Created Successfully." + "\n\n";
                            }
                            else
                            {
                                txtLog.Text += "\n\n" + "Error Creating Admin View Page." + "\n\n" + message;
                            }

                            txtLog.Text += "\n\n" + "Creating Admin View Code Behind Class ......" + "\n\n";
                            if (fop.createAdminViewCodeBehindPage(out message))
                            {
                                txtLog.Text += "\n\n" + "Admin View Code Behind Class Created Successfully." + "\n\n";
                            }
                            else
                            {
                                txtLog.Text += "\n\n" + "Error Creating Admin View Code Behind Class." + "\n\n" + message;
                            }

                            txtLog.Text += "\n\n" + "Creating Admin Insert Update Page ......" + "\n\n";
                            if (fop.createAdminInsertUpdatePage(out message))
                            {
                                txtLog.Text += "\n\n" + "Admin Insert Update Page Created Successfully." + "\n\n";
                            }
                            else
                            {
                                txtLog.Text += "\n\n" + "Error Creating Admin Insert Update Page." + "\n\n" + message;
                            }

                            txtLog.Text += "\n\n" + "Creating Admin Insert Update Code Behind Class ......" + "\n\n";
                            if (fop.createAdminInsertUpdateCodeBehind(out message))
                            {
                                txtLog.Text += "\n\n" + "Admin Insert Update Code Behind Class Created Successfully." + "\n\n";
                            }
                            else
                            {
                                txtLog.Text += "\n\n" + "Error Creating Admin Insert Update Code Behind Class." + "\n\n" + message;
                            }
                        }

                        if (chkVPages.Checked)
                        {
                            txtLog.Text += "\n\n" + "Creating View Page ......" + "\n\n";
                            if (fop.createViewPage(out message))
                            {
                                txtLog.Text += "\n\n" + "View Page Created Successfully." + "\n\n";
                            }
                            else
                            {
                                txtLog.Text += "\n\n" + "Error Creating View Page." + "\n\n" + message;
                            }

                            txtLog.Text += "\n\n" + "Creating View Page Code Behind Class ......" + "\n\n";
                            if (fop.createViewCodeBehindPage(out message))
                            {
                                txtLog.Text += "\n\n" + "View Page Code Behind Class Created Successfully." + "\n\n";
                            }
                            else
                            {
                                txtLog.Text += "\n\n" + "Error Creating View Page Code Behind Class." + "\n\n" + message;
                            }
                        }
                    }

                    MessageBox.Show("Process Completed. Please check the log for details.", "Process Complete", MessageBoxButtons.OK, MessageBoxIcon.Information);

                    cmdGenerate.Enabled = true;
                    cmdClear.Enabled    = true;
                    cmdExit.Enabled     = true;
                }
            }
            catch (Exception Ex)
            {
                ErrorManager errL = new ErrorManager();
                errL.WriteError("", Ex.Message.ToString(), Ex.Source.ToString(), Ex.StackTrace.ToString());
                txtLog.Text += "\n\n" + Ex.Message + "\n\n";
                //if (con.State != ConnectionState.Closed)
                //    con.Close();
            }
        }