public Tuple <bool, int> CreateORAlterDatabaseAndTables(string tablesXMLForm, string createTableSQLQuery) { bool dbCreatedSuccess = true; int version = 0; try { using (connection = DBConnectionFactory.CreateDatabaseInstance(this.contextName)) { DBConnectionOperation.ConnectionOpen(connection); #region Veritabanı var olup olmadığı konrtrol edilerek oluşturulur MySqlCommand command = new MySqlCommand(CreateDatabaseQuery(), (MySqlConnection)connection); command.ExecuteNonQuery(); #endregion #region Oluşturulan veritabanına geçiş yapılır connection.ChangeDatabase(this.contextName.ToLower()); #endregion #region __WORM__Configuration Tablosu var olup olmadığı kontrol edilerek oluşturulur Tuple <string, MySqlCommand> worm_Table = Create__WORM__Configuration_Table(tablesXMLForm); command = new MySqlCommand(worm_Table.Item1, (MySqlConnection)connection); command.ExecuteNonQuery(); command = worm_Table.Item2; command.ExecuteNonQuery(); #endregion #region __WORM__Configuration tablosundan veritabanı son versiyonu çekilir command = new MySqlCommand($"SELECT Version FROM __worm__configuration ORDER BY Version DESC LIMIT 1", (MySqlConnection)connection); DbDataReader reader = command.ExecuteReader(); while (reader.Read()) { version = reader.GetInt32(0); } reader.Close(); #endregion #region Tablolar oluşturulur command = new MySqlCommand(createTableSQLQuery, (MySqlConnection)connection); command.ExecuteNonQuery(); #endregion } } catch (Exception ex) { DBConnectionOperation.ConnectionClose(connection); throw ex; } return(Tuple.Create(dbCreatedSuccess, version)); }