Esempio n. 1
0
        public ServerAdmin(String configFile)
        {
            serverDb = Server.LoadConfig(configFile);

            Console.WriteLine("Starting ServerAdmin command line utility...");

            char choice = ' ';

            // menu
            while (choice != 'q')
            {
                Console.WriteLine("  l) List accounts");
                Console.WriteLine("  q) Quit");
                Console.Write("  > ");

                ConsoleKeyInfo cki = Console.ReadKey(false);

                choice = cki.KeyChar;

                Console.WriteLine();

                switch (choice)
                {
                case 'l':
                    serverDb.ShowUsers();
                    break;
                }
            }
        }
Esempio n. 2
0
        /// <summary>
        /// Constructor. Maintains a loop for listening for incoming clients.
        /// </summary>
        /// <param name="configFile"></param>
        public Server(String configFile)
        {
            Console.WriteLine("Starting server");
            Console.WriteLine("Loading config file " + configFile);

            serverDB = LoadConfig(configFile);

            TcpListener tcpListener = new TcpListener(IPAddress.Any, Port);

            try {
                tcpListener.Start();
            }
            catch (SocketException e) {
                Console.WriteLine("Unable to start listener on port " + Port + e.Message);
                throw;
            }

            while (true)
            {
                Console.WriteLine(" waiting for client to connect...");
                Socket listenerSocket = tcpListener.AcceptSocket();

                Console.WriteLine("Client connected with handle " + listenerSocket.Handle);
                ServerClientConnection client = new ServerClientConnection(this, listenerSocket);
                clients.Add(listenerSocket.Handle, client);
            }
        }
Esempio n. 3
0
 public FlightPlanController(IHttpClientFactory factory, IFlightPlanDB fpDb,
                             IServerDB serverDb, IFlightToServerDB flightToServerDb)
 {
     _client           = factory.CreateClient("api");
     _fpDb             = fpDb;
     _serverDb         = serverDb;
     _flightToServerDb = flightToServerDb;
 }
Esempio n. 4
0
        /*
         * 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);
        }
Esempio n. 5
0
        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;
            }
        }
Esempio n. 6
0
 public ServersController(IServerDB serverDb)
 {
     _serverDb = serverDb;
 }