/* * public static HashSet<Type> GetBackends() { * * HashSet<Type> result = new HashSet<Type>(); * * var types = Assembly.GetExecutingAssembly().GetTypes().Where(m => m.IsClass && m.GetInterfaces().Contains(typeof(IServerDB))); * * foreach (var type in types) * result.Add(type); * * return result; * } */ /// <summary> /// Set member variables from config file /// </summary> /// <param name="configFile"></param> public static IServerDB LoadConfig(String configFile) { IServerDB serverDB = null; try { IniParser iniParser = new IniParser(configFile); Port = int.Parse(iniParser.GetSetting("settings", CONFIG_PORT)); // returns NULL when not found ? String baseDataDir = iniParser.GetSetting("settings", CONFIG_DIR); String serverDbConnectionString = iniParser.GetSetting("settings", CONFIG_DBSTRING); Type dbType = Type.GetType(iniParser.GetSetting("settings", CONFIG_BACKEND)); serverDB = (IServerDB)Activator.CreateInstance(dbType); serverDB.Connect(serverDbConnectionString, baseDataDir); } catch (FileNotFoundException e) { Console.WriteLine(e.Message); Common.ExitError(); } return(serverDB); }
private void gatherInput() { String input = null; IServerDB serverDB = null; do { Console.Write("Port [" + port + "]: "); input = Console.ReadLine(); if (input != String.Empty) { port = int.Parse(input); } Console.WriteLine("Backend [" + backend.Name + "]: " + backend.Name); serverDB = (IServerDB)Activator.CreateInstance(backend /*, new Object[]{null}*/); baseDataDir = serverDB.BaseDataDir; serverDbConnectionString = serverDB.DefaultConnectionString; Console.Write("DB connection string: [{0}]: ", serverDbConnectionString); input = Console.ReadLine(); if (input != String.Empty) { serverDbConnectionString = input; } Console.Write("Base data directory: [{0}]: ", baseDataDir); input = Console.ReadLine(); if (input != String.Empty) { baseDataDir = input; } try { serverDB.Connect(serverDbConnectionString, baseDataDir); break; } catch (Exception e) { Console.WriteLine(e.Message); continue; } } while (true); int accounts = serverDB.UsersCount(); Console.WriteLine(" The database currently contains " + accounts + " accounts"); if (accounts == 0) { Console.WriteLine("You will not be able to to use Mybox unless user are created on the server."); } Console.Write("Config file to create [" + configFile + "]: "); input = Console.ReadLine(); if (input != String.Empty) { configFile = input; } }