public void InitializeConnection(uint MinimumRequiredSchema) { string Host = Properties.Settings.Default.DatabaseHost; string User = Properties.Settings.Default.DatabaseUser; string Password = Properties.Settings.Default.DatabasePassword; string Schema = Properties.Settings.Default.DatabaseSchema; string ConnectString = BuildConnectString(Host, User, Password, Schema); try { MySqlConnection connection = new MySqlConnection(ConnectString); connection.StateChange += MySqlConnection_StateChange; connection.Open(); mDatabaseHost = Host; mConnection = connection; mConnStr = ConnectString; DbOpVerifySchema schema_request = new DbOpVerifySchema(MinimumRequiredSchema); schema_request.OnVerificationCompleted += DbOpGetSchemaInfo_OnVerificationCompleted; BeginExecuteRequest(schema_request); } catch (MySqlException) { if (OnConnectionInitialized != null) { OnConnectionInitialized(ConnectResult.InvalidConnection); } } }
void mDatabaseThread_DoWork(object sender, DoWorkEventArgs e) { while (!mCancellationTokenSource.IsCancellationRequested) { IDbRequest request = null; try { Utility.Log.LogString("Database thread waiting for request"); request = mDatabaseQueue.Take(mCancellationTokenSource.Token); Utility.Log.LogFormat("Database thread dequeued request of type {0}", request.GetType().Name); DbOpVerifySchema schema_request = new DbOpVerifySchema(FFRKProxy.Instance.MinimumRequiredSchema); ProcessDbRequestOnThisThread(schema_request); if (schema_request.Result != DbOpVerifySchema.VerificationResult.OK) { Utility.Log.LogString("Schema verification failed. Disabling database connectivity."); mConnectionState = ConnectionState.Disabled; if (OnSchemaError != null) { OnSchemaError(TranslateSchemaVerificationResult(schema_request.Result)); } if (OnConnectionStateChanged != null) { OnConnectionStateChanged(mConnectionState); } Shutdown(); } else { ProcessDbRequestOnThisThread(request); } } catch (OperationCanceledException) { Utility.Log.LogString("Database worker thread shutting down because cancellation was requested."); } catch (Exception ex) { Utility.Log.LogFormat("Database worker thread encountered an unknown exception. {0}\n{1}", ex.Message, ex.StackTrace); } } Utility.Log.LogString("Database worker thread exiting."); }
public ConnectResult TestConnect(string Host, string User, string Password, string Schema, uint MinimumRequiredSchema) { string ConnectString = BuildConnectString(Host, User, Password, Schema); MySqlConnection connection = null; try { connection = new MySqlConnection(ConnectString); connection.Open(); DbOpVerifySchema schema_request = new DbOpVerifySchema(MinimumRequiredSchema); schema_request.Execute(connection, null); DbOpVerifySchema.VerificationResult result = schema_request.Result; return(TranslateSchemaVerificationResult(result)); } finally { if (connection != null) { connection.Close(); } } }
private ConnectResult TranslateSchemaVerificationResult(DbOpVerifySchema.VerificationResult Result) { switch (Result) { case DbOpVerifySchema.VerificationResult.DatabaseTooOld: return ConnectResult.SchemaTooOld; case DbOpVerifySchema.VerificationResult.DatabaseTooNew: return ConnectResult.SchemaTooNew; default: return ConnectResult.Success; } }
void mDatabaseThread_DoWork(object sender, DoWorkEventArgs e) { while (!mCancellationTokenSource.IsCancellationRequested) { IDbRequest request = null; try { Utility.Log.LogString("Database thread waiting for request"); request = mDatabaseQueue.Take(mCancellationTokenSource.Token); Utility.Log.LogFormat("Database thread dequeued request of type {0}", request.GetType().Name); DbOpVerifySchema schema_request = new DbOpVerifySchema(FFRKProxy.Instance.MinimumRequiredSchema); ProcessDbRequestOnThisThread(schema_request); if (schema_request.Result != DbOpVerifySchema.VerificationResult.OK) { Utility.Log.LogString("Schema verification failed. Disabling database connectivity."); mConnectionState = ConnectionState.Disabled; if (OnSchemaError != null) OnSchemaError(TranslateSchemaVerificationResult(schema_request.Result)); if (OnConnectionStateChanged != null) OnConnectionStateChanged(mConnectionState); Shutdown(); } else ProcessDbRequestOnThisThread(request); } catch (OperationCanceledException) { Utility.Log.LogString("Database worker thread shutting down because cancellation was requested."); } catch(Exception ex) { Utility.Log.LogFormat("Database worker thread encountered an unknown exception. {0}\n{1}", ex.Message, ex.StackTrace); } } Utility.Log.LogString("Database worker thread exiting."); }
void DbOpGetSchemaInfo_OnVerificationCompleted(DbOpVerifySchema.VerificationResult VerificationResult) { ConnectResult result = TranslateSchemaVerificationResult(VerificationResult); if (result != ConnectResult.Success) { mDatabaseDisabled = true; mConnectionState = ConnectionState.Disabled; if (OnConnectionStateChanged != null) OnConnectionStateChanged(mConnectionState); } if (OnConnectionInitialized != null) OnConnectionInitialized(result); }
public ConnectResult TestConnect(string Host, string User, string Password, string Schema, uint MinimumRequiredSchema) { string ConnectString = BuildConnectString(Host, User, Password, Schema); MySqlConnection connection = null; try { connection = new MySqlConnection(ConnectString); connection.Open(); DbOpVerifySchema schema_request = new DbOpVerifySchema(MinimumRequiredSchema); schema_request.Execute(connection, null); DbOpVerifySchema.VerificationResult result = schema_request.Result; return TranslateSchemaVerificationResult(result); } finally { if (connection != null) connection.Close(); } }
public void InitializeConnection(uint MinimumRequiredSchema) { string Host = Properties.Settings.Default.DatabaseHost; string User = Properties.Settings.Default.DatabaseUser; string Password = Properties.Settings.Default.DatabasePassword; string Schema = Properties.Settings.Default.DatabaseSchema; string ConnectString = BuildConnectString(Host, User, Password, Schema); try { MySqlConnection connection = new MySqlConnection(ConnectString); connection.StateChange += MySqlConnection_StateChange; connection.Open(); mDatabaseHost = Host; mConnection = connection; mConnStr = ConnectString; DbOpVerifySchema schema_request = new DbOpVerifySchema(MinimumRequiredSchema); schema_request.OnVerificationCompleted += DbOpGetSchemaInfo_OnVerificationCompleted; BeginExecuteRequest(schema_request); } catch (MySqlException) { if (OnConnectionInitialized != null) OnConnectionInitialized(ConnectResult.InvalidConnection); } }