/// <summary>
/// starts the initialization of the global objects
/// </summary>
public static void Init()
{
try
{
if(!m_initDone)
{
Program.SplashScreen = new SplashScreenForm();
Program.SplashScreen.Show();
Program.SplashScreen.InfoAdd("initializing logger...");
Program.Logger = new SingleThreadLogger(ThreadLoggerType.Form);
Program.Logger.Log("Initialising...\n");
Program.SplashScreen.InfoAppendLast("<OK>");
Program.SplashScreen.InfoAdd("starting sql server...");
// load settings from file
IniFile = new STA.Settings.INIFile(GetDataPath("ED-IBE.ini"), false, true);
// starT database process (if not running)
DBProcess.DBProcessParams newProcessParams = new DBProcess.DBProcessParams() { };
newProcessParams.Commandline = IniFile.GetValue("DB_Server", "Commandline", @"bin\mysqld.exe");
newProcessParams.Commandargs = IniFile.GetValue("DB_Server", "CommandArgs", @"--defaults-file=Elite.ini --console");
newProcessParams.Workingdirectory = IniFile.GetValue("DB_Server", "WorkingDirectory", @"..\..\..\RNDatabase\Database");
newProcessParams.Port = IniFile.GetValue<Int16>("DB_Server", "Port", "3306");
newProcessParams.DBStartTimeout = IniFile.GetValue<Int16>("DB_Server", "DBStartTimeout", "60");
EliteDBProcess = new DBProcess(newProcessParams);
if (EliteDBProcess.WasRunning)
Program.SplashScreen.InfoAppendLast("already running...<OK>");
else
Program.SplashScreen.InfoAppendLast("<OK>");
// connecT to the database
Program.SplashScreen.InfoAdd("connect to sql server...");
DBConnector.ConnectionParams newConnectionParams = new DBConnector.ConnectionParams() { };
newConnectionParams.Name = IniFile.GetValue("DB_Connection", "Name", "master");
newConnectionParams.Server = IniFile.GetValue("DB_Connection", "Server", "localhost");
newConnectionParams.Database = IniFile.GetValue("DB_Connection", "Database", "Elite_DB");
newConnectionParams.User = IniFile.GetValue("DB_Connection", "User", "RN_User");
newConnectionParams.Pass = IniFile.GetValue("DB_Connection", "Pass", "Elite");
newConnectionParams.ConnectTimeout = IniFile.GetValue<Int16>("DB_Connection", "ConnectTimeout", "60");
newConnectionParams.StayAlive = IniFile.GetValue<Boolean>("DB_Connection", "StayAlive", "false");
newConnectionParams.TimeOut = IniFile.GetValue<Int16>("DB_Connection", "TimeOut", "60");
DBCon = new DBConnector(newConnectionParams);
DBCon.Connect();
Program.SplashScreen.InfoAppendLast("<OK>");
/* **************** database is running ********************** */
Program.SplashScreen.InfoAdd("preparing global objects...");
// prepare colors-object
Colors = new GUIColors();
// preprare main data object
Data = new IBE.SQL.EliteDBIO();
Data.PrepareBaseTables();
// create global paths-object
//Paths = new ProgramPaths();
// prepare settings
Settings = new Settings();
Settings.BaseData = Data.BaseData;
// prepare commanders log
CommandersLog = new CommandersLog();
CommandersLog.BaseData = Data.BaseData;
// prepare price analysis
PriceAnalysis = new PriceAnalysis(new DBConnector(DBCon.ConfigData, true));
PriceAnalysis.BaseData = Data.BaseData;
// starting the external data interface
ExternalData = new ExternalDataInterface();
// initializing the object for the actual condition
actualCondition = new Condition();
// initializing the LogfileScanner
LogfileScanner = new EDLogfileScanner();
// forwards a potentially new system or station information to database
Program.LogfileScanner.LocationInfo += LogfileScanner_LocationInfo;
Program.ExternalData.LocationInfo += ExternalData_LocationInfo;
// register the LogfileScanner in the CommandersLog for the ExternalDataEvent-event
CommandersLog.registerLogFileScanner(LogfileScanner);
CommandersLog.registerExternalTool(ExternalData);
PriceAnalysis.registerLogFileScanner(LogfileScanner);
PriceAnalysis.registerExternalTool(ExternalData);
Program.SplashScreen.InfoAppendLast("<OK>");
m_initDone = true;
}
}
catch (Exception ex)
{
cErr.processError(ex, "Error while initializing the program object", true);
}
}