/// <summary> /// Generate CRUD SP SQL scripts for the DB selected Tables /// </summary> /// <param name="outputDirectory">The directory where the SQL code should be created.</param> /// <param name="connectionString">The connection string to be used to connect the to the database.</param> /// <param name="grantLoginName">The SQL Server login name that should be granted execute rights on the generated stored procedures.</param> /// <param name="storedProcedurePrefix">The prefix that should be used when creating stored procedures.</param> /// <param name="createMultipleFiles">A flag indicating if the generated stored procedures should be created in one file or separate files.</param> /// <param name="tableNames">ArrayList of Table names whose SPs has to be created.</param> /// <returns></returns> public static string GenerateSQLFiles(string outputDirectory, string connectionString, string grantLoginName, string storedProcedurePrefix, bool createMultipleFiles, ArrayList tableNames) { string databaseName = ""; string sqlPath; sqlPath = Path.Combine(outputDirectory, "SQL"); List <Table> tableList = AppUtility.GetTableList(connectionString, outputDirectory, tableNames, ref databaseName); // Generate the necessary SQL for each table int count = 0; if (tableList.Count > 0) { // Create the necessary directories AppUtility.CreateSubDirectory(sqlPath, true); // Create the necessary database logins CreateUserQueries(databaseName, grantLoginName, sqlPath, createMultipleFiles); // Create the CRUD stored procedures and data access code for each table foreach (Table table in tableList) { CreateInsertStoredProcedure(table, grantLoginName, storedProcedurePrefix, sqlPath, createMultipleFiles); CreateUpdateStoredProcedure(table, grantLoginName, storedProcedurePrefix, sqlPath, createMultipleFiles); CreateDeleteStoredProcedure(table, grantLoginName, storedProcedurePrefix, sqlPath, createMultipleFiles); CreateDeleteAllByStoredProcedures(table, grantLoginName, storedProcedurePrefix, sqlPath, createMultipleFiles); CreateSelectStoredProcedure(table, grantLoginName, storedProcedurePrefix, sqlPath, createMultipleFiles); CreateSelectAllStoredProcedure(table, grantLoginName, storedProcedurePrefix, sqlPath, createMultipleFiles); CreateSelectAllByStoredProcedures(table, grantLoginName, storedProcedurePrefix, sqlPath, createMultipleFiles); count++; } } return(sqlPath); }
public static string GenerateRepoFiles(string outputDirectory, string connectionString, string storedProcedurePrefix, string targetNamespace, string daoSuffix, ArrayList tableNames) { string databaseName = ""; string csPath = Path.Combine(outputDirectory, "Repo"); List <Table> tableList = AppUtility.GetTableList(connectionString, outputDirectory, tableNames, ref databaseName); // Generate the necessary SQL and C# code for each table if (tableList.Count <= 0) { return(csPath); } // Create the necessary directories AppUtility.CreateSubDirectory(csPath, true); // Create the CRUD stored procedures and data access code for each table foreach (Table table in tableList) { CreateRepoClass(databaseName, table, targetNamespace, storedProcedurePrefix, csPath); } CreateAssemblyInfo(csPath, targetNamespace, databaseName); CreateProjectFile(csPath, targetNamespace, tableList, daoSuffix); return(csPath); }