Organise the files properly.

This commit is contained in:
UnknownShadow200 2016-09-02 11:08:12 +10:00
parent 8bc3fe0675
commit c6225b9c1f
8 changed files with 201 additions and 103 deletions

View File

@ -0,0 +1,54 @@
/*
Copyright 2015 MCGalaxy
Dual-licensed under the Educational Community License, Version 2.0 and
the GNU General Public License, Version 3 (the "Licenses"); you may
not use this file except in compliance with the Licenses. You may
obtain a copy of the Licenses at
http://www.osedu.org/licenses/ECL-2.0
http://www.gnu.org/licenses/gpl-3.0.html
Unless required by applicable law or agreed to in writing,
software distributed under the Licenses are distributed on an "AS IS"
BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
or implied. See the Licenses for the specific language governing
permissions and limitations under the Licenses.
*/
using System;
using System.Data;
using MySql.Data.MySqlClient;
namespace MCGalaxy.SQL {
public sealed class MySQLBackend : IDatabaseBackend {
public static IDatabaseBackend Instance = new MySQLBackend();
static ParameterisedQuery queryInstance = new MySQLParameterisedQuery();
static string connFormat = "Data Source={0};Port={1};User ID={2};Password={3};Pooling={4}";
public override string ConnectionString {
get { return String.Format(connFormat, Server.MySQLHost, Server.MySQLPort,
Server.MySQLUsername, Server.MySQLPassword, Server.DatabasePooling); }
}
public override BulkTransaction CreateBulk() {
return new MySQLBulkTransaction(ConnectionString);
}
public override ParameterisedQuery CreateParameterised() {
return new MySQLParameterisedQuery();
}
internal override ParameterisedQuery GetStaticParameterised() {
return queryInstance;
}
public override bool TableExists(string table) {
const string syntax = "SELECT * FROM information_schema.tables WHERE table_schema = @1 AND table_name = @0";
using (DataTable results = Database.Fill(syntax, table, Server.MySQLDatabaseName))
return results.Rows.Count > 0;
}
}
}

View File

@ -0,0 +1,44 @@
/*
Copyright 2011 MCForge
Dual-licensed under the Educational Community License, Version 2.0 and
the GNU General Public License, Version 3 (the "Licenses"); you may
not use this file except in compliance with the Licenses. You may
obtain a copy of the Licenses at
http://www.osedu.org/licenses/ECL-2.0
http://www.gnu.org/licenses/gpl-3.0.html
Unless required by applicable law or agreed to in writing,
software distributed under the Licenses are distributed on an "AS IS"
BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
or implied. See the Licenses for the specific language governing
permissions and limitations under the Licenses.
*/
using System;
using System.Data;
using MySql.Data.MySqlClient;
namespace MCGalaxy.SQL {
public sealed class MySQLBulkTransaction : BulkTransaction {
public MySQLBulkTransaction(string connString) {
connection = new MySqlConnection(connString);
connection.Open();
connection.ChangeDatabase(Server.MySQLDatabaseName);
transaction = connection.BeginTransaction();
}
public override IDbCommand CreateCommand(string query) {
return new MySqlCommand(query, (MySqlConnection)connection, (MySqlTransaction)transaction);
}
public override IDataParameter CreateParam(string paramName, DbType type) {
MySqlParameter arg = new MySqlParameter(paramName, null);
arg.DbType = type;
return arg;
}
}
}

View File

@ -1,6 +1,5 @@
/*
Copyright 2010 MCSharp team (Modified for use with MCZall/MCLawl/MCGalaxy)
Copyright 2011 MCForge
Dual-licensed under the Educational Community License, Version 2.0 and
the GNU General Public License, Version 3 (the "Licenses"); you may
@ -21,57 +20,6 @@ using System.Data;
using MySql.Data.MySqlClient;
namespace MCGalaxy.SQL {
public sealed class MySQLBackend : IDatabaseBackend {
public static IDatabaseBackend Instance = new MySQLBackend();
static ParameterisedQuery queryInstance = new SQLiteParameterisedQuery();
static string connFormat = "Data Source={0};Port={1};User ID={2};Password={3};Pooling={4}";
public override string ConnectionString {
get { return String.Format(connFormat, Server.MySQLHost, Server.MySQLPort,
Server.MySQLUsername, Server.MySQLPassword, Server.DatabasePooling); }
}
public override BulkTransaction CreateBulk() {
return new MySQLBulkTransaction(ConnectionString);
}
public override ParameterisedQuery CreateParameterised() {
return new MySQLParameterisedQuery();
}
internal override ParameterisedQuery GetStaticParameterised() {
return queryInstance;
}
public override bool TableExists(string table) {
const string syntax = "SELECT * FROM information_schema.tables WHERE table_schema = @1 AND table_name = @0";
using (DataTable results = Database.Fill(syntax, table, Server.MySQLDatabaseName))
return results.Rows.Count > 0;
}
}
public sealed class MySQLBulkTransaction : BulkTransaction {
public MySQLBulkTransaction(string connString) {
connection = new MySqlConnection(connString);
connection.Open();
connection.ChangeDatabase(Server.MySQLDatabaseName);
transaction = connection.BeginTransaction();
}
public override IDbCommand CreateCommand(string query) {
return new MySqlCommand(query, (MySqlConnection)connection, (MySqlTransaction)transaction);
}
public override IDataParameter CreateParam(string paramName, DbType type) {
MySqlParameter arg = new MySqlParameter(paramName, null);
arg.DbType = type;
return arg;
}
}
public sealed class MySQLParameterisedQuery : ParameterisedQuery {

View File

@ -1,5 +1,5 @@
/*
Copyright 2011 MCForge
Copyright 2015 MCGalaxy
Dual-licensed under the Educational Community License, Version 2.0 and
the GNU General Public License, Version 3 (the "Licenses"); you may
@ -43,56 +43,11 @@ namespace MCGalaxy.SQL {
return queryInstance;
}
public override bool TableExists(string table) {
const string syntax = "SELECT name FROM sqlite_master WHERE type='table' AND name=@0";
using (DataTable results = Database.Fill(syntax, table))
return results.Rows.Count > 0;
}
}
public sealed class SQLiteBulkTransaction : BulkTransaction {
public SQLiteBulkTransaction(string connString) {
connection = new SQLiteConnection(connString);
connection.Open();
transaction = connection.BeginTransaction();
}
public override IDbCommand CreateCommand(string query) {
return new SQLiteCommand(query, (SQLiteConnection)connection, (SQLiteTransaction)transaction);
}
public override IDataParameter CreateParam(string paramName, DbType type) {
return new SQLiteParameter(paramName, type);
}
}
public sealed class SQLiteParameterisedQuery : ParameterisedQuery {
public override void Execute(string query, string connString, bool createDB = false) {
using (var conn = new SQLiteConnection(connString)) {
conn.Open();
using (SQLiteCommand cmd = new SQLiteCommand(query, conn)) {
foreach (var param in parameters)
cmd.Parameters.AddWithValue(param.Key, param.Value);
cmd.ExecuteNonQuery();
}
conn.Close();
}
}
public override void Fill(string query, string connString, DataTable results) {
using (var conn = new SQLiteConnection(connString)) {
conn.Open();
using (SQLiteDataAdapter da = new SQLiteDataAdapter(query, conn)) {
foreach (var param in parameters)
da.SelectCommand.Parameters.AddWithValue(param.Key, param.Value);
da.Fill(results);
da.SelectCommand.Dispose();
}
conn.Close();
}
}
}
}

View File

@ -0,0 +1,40 @@
/*
Copyright 2011 MCForge
Dual-licensed under the Educational Community License, Version 2.0 and
the GNU General Public License, Version 3 (the "Licenses"); you may
not use this file except in compliance with the Licenses. You may
obtain a copy of the Licenses at
http://www.osedu.org/licenses/ECL-2.0
http://www.gnu.org/licenses/gpl-3.0.html
Unless required by applicable law or agreed to in writing,
software distributed under the Licenses are distributed on an "AS IS"
BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
or implied. See the Licenses for the specific language governing
permissions and limitations under the Licenses.
*/
using System;
using System.Data;
using System.Data.SQLite;
namespace MCGalaxy.SQL {
public sealed class SQLiteBulkTransaction : BulkTransaction {
public SQLiteBulkTransaction(string connString) {
connection = new SQLiteConnection(connString);
connection.Open();
transaction = connection.BeginTransaction();
}
public override IDbCommand CreateCommand(string query) {
return new SQLiteCommand(query, (SQLiteConnection)connection, (SQLiteTransaction)transaction);
}
public override IDataParameter CreateParam(string paramName, DbType type) {
return new SQLiteParameter(paramName, type);
}
}
}

View File

@ -0,0 +1,52 @@
/*
Copyright 2011 MCForge
Dual-licensed under the Educational Community License, Version 2.0 and
the GNU General Public License, Version 3 (the "Licenses"); you may
not use this file except in compliance with the Licenses. You may
obtain a copy of the Licenses at
http://www.osedu.org/licenses/ECL-2.0
http://www.gnu.org/licenses/gpl-3.0.html
Unless required by applicable law or agreed to in writing,
software distributed under the Licenses are distributed on an "AS IS"
BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
or implied. See the Licenses for the specific language governing
permissions and limitations under the Licenses.
*/
using System;
using System.Data;
using System.Data.SQLite;
namespace MCGalaxy.SQL {
public sealed class SQLiteParameterisedQuery : ParameterisedQuery {
public override void Execute(string query, string connString, bool createDB = false) {
using (var conn = new SQLiteConnection(connString)) {
conn.Open();
using (SQLiteCommand cmd = new SQLiteCommand(query, conn)) {
foreach (var param in parameters)
cmd.Parameters.AddWithValue(param.Key, param.Value);
cmd.ExecuteNonQuery();
}
conn.Close();
}
}
public override void Fill(string query, string connString, DataTable results) {
using (var conn = new SQLiteConnection(connString)) {
conn.Open();
using (SQLiteDataAdapter da = new SQLiteDataAdapter(query, conn)) {
foreach (var param in parameters)
da.SelectCommand.Parameters.AddWithValue(param.Key, param.Value);
da.Fill(results);
da.SelectCommand.Dispose();
}
conn.Close();
}
}
}
}

View File

@ -405,11 +405,15 @@
<Compile Include="Config\Properties.cs" />
<Compile Include="Config\PropertiesFile.cs" />
<Compile Include="Config\StringAttributes.cs" />
<Compile Include="Database\Backends\IDatabaseBackend.cs" />
<Compile Include="Database\Backends\SQLiteBackend.cs" />
<Compile Include="Database\Backends\MySQLBackend.cs" />
<Compile Include="Database\BlockDB.cs" />
<Compile Include="Database\IDatabaseBackend.cs" />
<Compile Include="Database\MySQL\MySQLBackend.cs" />
<Compile Include="Database\MySQL\MySQLBulkTransaction.cs" />
<Compile Include="Database\MySQL\MySQLParameterisedQuery.cs" />
<Compile Include="Database\ParameterisedQuery.cs" />
<Compile Include="Database\SQLite\SQLiteBackend.cs" />
<Compile Include="Database\SQLite\SQLiteBulkTransaction.cs" />
<Compile Include="Database\SQLite\SQLiteParameterisedQuery.cs" />
<Compile Include="Drawing\Brushes\Brush.cs" />
<Compile Include="Drawing\Brushes\CloudyBrush.cs" />
<Compile Include="Drawing\Brushes\PasteBrush.cs" />
@ -694,7 +698,8 @@
<Folder Include="Commands\Scripting" />
<Folder Include="Commands\World" />
<Folder Include="Commands\other" />
<Folder Include="Database\Backends" />
<Folder Include="Database\MySQL" />
<Folder Include="Database\SQLite" />
<Folder Include="Drawing\DrawOps" />
<Folder Include="Drawing\Brushes" />
<Folder Include="Drawing\Image" />