Inheritance: IDisposable
Esempio n. 1
0
        /// <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);
            }
        }
Esempio n. 2
0
        public void ImportLocalizationDataFromCSV(string fileName, EliteDBIO.enLocalizationType activeSetting, enLocalisationImportType importType = enLocalisationImportType.onlyNew)
        {
            String sqlString = "";
            Int32 counter = 0;
            String infoString = "";
            String idString = "";
            String dataLine;
            DataSet importData;
            DataTable importTable;

            try
            {
                switch (activeSetting)
                {
                    case enLocalizationType.Commodity:
                        infoString = "import commodity localization...";
                        idString = "Commodity_ID;Language;Name";
                        break;
                    case enLocalizationType.Category:
                        infoString = "import category localization...";
                        idString = "Category_ID;Language;Name";
                        break;
                    case enLocalizationType.Economylevel:
                        infoString = "import economylevel localization...";
                        idString = "EconomyLevel_ID;Language;Name";
                        break;
                    default:
                        throw new Exception("unknown setting :  " + activeSetting);
                }

                List<string> dataLines = File.ReadAllLines(fileName).ToList();
                
                if(dataLines[0].Equals(idString, StringComparison.InvariantCultureIgnoreCase))
                {
                    importData  = new DataSet();
                    importTable = new DataTable("Names");
                    importData.Tables.Add(importTable);
                    DataColumn column;

                    column = new DataColumn("id", Type.GetType("System.Int32"));
                    column.AllowDBNull = false;
                    column.Unique       = true;
                    importTable.Columns.Add(column);

                    for (int i = 1; i < dataLines.Count; i++)
        			{
                        if(!String.IsNullOrEmpty(dataLines[i]))
                        {
                            switch (activeSetting)
                            {
                                case enLocalizationType.Commodity:
                                    List<String> data = dataLines[i].Split(new char[] {';'}).ToList();
                                    Int32 currentID = Int32.Parse(data[0]);

                                    if (!importTable.Columns.Contains(data[1]))
                                    {

                                        Debug.Print(Type.GetType("System.String").ToString());
                                        // add a new language in table
                                        column = new DataColumn(data[1], Type.GetType("System.String"));
                                        column.DefaultValue = "";
                                        importTable.Columns.Add(column);
                                    }

                                    DataRow currentrow;

                                    var rowForID = importTable.Select("id = " + currentID);
                                    
                                    if (rowForID.Count() == 0)
                                    {
                                        // add a new row
                                        currentrow        = importTable.NewRow();
                                        currentrow["id"]  = currentID;
                                        importTable.Rows.Add(currentrow);
                                    }
                                    else
                                        currentrow = rowForID[0];

                                    currentrow[data[1]] = data[2].Trim();

                                    break;
                                case enLocalizationType.Category:
                                    break;
                                case enLocalizationType.Economylevel:
                                    break;
                                default:
                                    throw new Exception("unknown setting :  " + activeSetting);
                            }
                        }

                        counter++;
                    }
                
                    switch (activeSetting)
                    {
                        case enLocalizationType.Commodity:
                            ImportCommodityLocalizations(importData, importType);
                            break;
                        case enLocalizationType.Category:
                            infoString = "import category localization...";
                            idString = "Category_ID;Language;Name";
                            break;
                        case enLocalizationType.Economylevel:
                            infoString = "import economylevel localization...";
                            idString = "EconomyLevel_ID;Language;Name";
                            break;
                        default:
                            throw new Exception("unknown setting :  " + activeSetting);
                    }

                }
                else
                {
                    sendProgressEvent(new ProgressEventArgs() { Info="abort: file has wrong header", CurrentValue=1, TotalValue=1, ForceRefresh=true });
                }

                dataLines.Clear();
            }
            catch (Exception ex)
            {
                throw new Exception("Error while importing localization data from csv", ex);
            }
        }
Esempio n. 3
0
        /// <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.Logger = MainLog;

                    Program.SplashScreen.InfoAdd("initializing logger...");
                    Program.MainLog.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);


                    // prepare architecture-dependend files
                    PrepareDepFiles();

                    // 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<UInt16>("DB_Server", "Port",             "3306");
                    newProcessParams.DBStartTimeout             = IniFile.GetValue<Int16>("DB_Server",  "DBStartTimeout",   "60");

                    Program.SplashScreen.InfoAppendLast("on port " + newProcessParams.Port + "...");

                    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.Port                    = IniFile.GetValue<UInt16>("DB_Server",      "Port",           "3306");
                    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",        "10000");

                    DBCon                                       = new DBConnector(newConnectionParams);

                    DBCon.Connect();

                    Program.SplashScreen.InfoAppendLast("<OK>");

                    /* **************** database is running ********************** */
                    
                    /* perform updates */
                    Updater.DBUpdate();

                    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();

                    // Companion IO
                    CompanionIO = new IBECompanion.CompanionData(Program.GetDataPath());
                    if(CompanionIO.ConditionalLogIn())
                        CompanionIO.GetProfileDataAsync();

                    // initializing the object for the actual condition
                    actualCondition                             = new Condition();

                    // initializing the LogfileScanner
                    //LogfileScanner                              = new EDLogfileScanner();
                    JournalScanner                              = new EDJournalScanner();

                    // EDDN Interface
                    EDDNComm = new IBE.EDDN.EDDNCommunicator();

                    // EDSMComm Interface
                    EDSMComm = new IBE.EDSM.EDStarmapInterface(Program.DBCon);

                    CommandersLog.registerJournalScanner(JournalScanner);
                    CommandersLog.registerExternalTool(CompanionIO);

                    CompanionIO.registerJournalScanner(JournalScanner);
                    
                    PriceAnalysis.registerJournalScanner(JournalScanner);
                    PriceAnalysis.registerExternalTool(CompanionIO);

                    EDSMComm.registerJournalScanner(JournalScanner);

                    actualCondition.RegisterJournalScanner(JournalScanner);
                    EDDNComm.RegisterJournalScanner(JournalScanner);
                    

                    // Plausibility-Checker
                    PlausibiltyCheck = new PlausibiltyChecker();

                    /// early variant of DoSpecial();
                    Updater.DoSpecial_Early();

                    Program.SplashScreen.InfoAppendLast("<OK>");

                    m_initDone = true;

                }
            }
            catch (Exception ex)
            {
                CErr.processError(ex, "Error while initializing the program object");
            }

        }