/// <inheritdoc />
        protected override int RunImpl(string[] args)
        {
            if (!ParseArguments(args))
            {
                ShowHelp();
                return(ResultCode.InvalidArguments);
            }

            if (Arguments.Help)
            {
                ShowHelp();
                return(ResultCode.Success);
            }

            AmbienceServerConfiguration configuration = new AmbienceServerConfiguration();

            configuration.Port       = Arguments.Port;
            configuration.Credential = new NetworkCredential(Arguments.UserName, Arguments.Password);
            if (Arguments.DatabasePath != null)
            {
                configuration.DatabasePath = Arguments.DatabasePath;
            }

            if (ProcessSupport.ProcessType == ProcessType.Service)
            {
                return(RunAsService(configuration));
            }

            return(RunAsApplication(configuration));
        }
        public void Port_GetSet()
        {
            AmbienceServerConfiguration config = new AmbienceServerConfiguration();
            Assert.AreEqual(Constants.DefaultPortNumber, config.Port);

            config.Port = 1111;
            Assert.AreEqual(1111, config.Port);
        }
        public void DatabasePath_GetSet()
        {
            AmbienceServerConfiguration config = new AmbienceServerConfiguration();
            Assert.AreEqual(Path.Combine(Constants.CommonAppDataFolderPath, Constants.DefaultDatabaseFileName), config.DatabasePath);

            config.DatabasePath = "somefile.db";
            Assert.AreEqual("somefile.db", config.DatabasePath);
        }
Ejemplo n.º 4
0
        public void DatabasePath_GetSet()
        {
            AmbienceServerConfiguration config = new AmbienceServerConfiguration();

            Assert.AreEqual(Path.Combine(Constants.CommonAppDataFolderPath, Constants.DefaultDatabaseFileName), config.DatabasePath);

            config.DatabasePath = "somefile.db";
            Assert.AreEqual("somefile.db", config.DatabasePath);
        }
Ejemplo n.º 5
0
        public AmbienceService(AmbienceServerConfiguration configuration)
        {
            if (configuration == null)
                throw new ArgumentNullException("configuration");

            this.configuration = configuration;

            InitializeComponent();
        }
Ejemplo n.º 6
0
        public void Port_GetSet()
        {
            AmbienceServerConfiguration config = new AmbienceServerConfiguration();

            Assert.AreEqual(Constants.DefaultPortNumber, config.Port);

            config.Port = 1111;
            Assert.AreEqual(1111, config.Port);
        }
        public void Credential_GetSet()
        {
            AmbienceServerConfiguration config = new AmbienceServerConfiguration();
            Assert.AreEqual(Constants.AnonymousUserName, config.Credential.UserName);
            Assert.AreEqual(Constants.AnonymousPassword, config.Credential.Password);

            config.Credential = new NetworkCredential("abc", "def");
            Assert.AreEqual("abc", config.Credential.UserName);
            Assert.AreEqual("def", config.Credential.Password);
        }
Ejemplo n.º 8
0
        public AmbienceService(AmbienceServerConfiguration configuration)
        {
            if (configuration == null)
            {
                throw new ArgumentNullException("configuration");
            }

            this.configuration = configuration;

            InitializeComponent();
        }
Ejemplo n.º 9
0
        public void Credential_GetSet()
        {
            AmbienceServerConfiguration config = new AmbienceServerConfiguration();

            Assert.AreEqual(Constants.AnonymousUserName, config.Credential.UserName);
            Assert.AreEqual(Constants.AnonymousPassword, config.Credential.Password);

            config.Credential = new NetworkCredential("abc", "def");
            Assert.AreEqual("abc", config.Credential.UserName);
            Assert.AreEqual("def", config.Credential.Password);
        }
Ejemplo n.º 10
0
        private int RunAsApplication(AmbienceServerConfiguration configuration)
        {
            ManualResetEvent waitHandle = new ManualResetEvent(false);

            Console.Cancel += delegate { waitHandle.Set(); };
            Console.IsCancelationEnabled = true;

            ShowBanner();

            using (AmbienceServer server = new AmbienceServer(configuration))
            {
                Console.WriteLine("Starting...");
                server.Start();

                Console.WriteLine("Running...  (Press Ctrl-C to stop)");
                waitHandle.WaitOne();

                Console.WriteLine("Stopping...");
                server.Stop();
                Console.WriteLine("Stopped.");
            }

            return(ResultCode.Success);
        }
Ejemplo n.º 11
0
        public void Credential_ThrowsIfValueIsNull()
        {
            AmbienceServerConfiguration config = new AmbienceServerConfiguration();

            Assert.Throws <ArgumentNullException>(() => config.Credential = null);
        }
 public void DatabasePath_ThrowsIfValueIsEmpty()
 {
     AmbienceServerConfiguration config = new AmbienceServerConfiguration();
     Assert.Throws<ArgumentException>(() => config.DatabasePath = "");
 }
 public void Credential_ThrowsIfValueIsNull()
 {
     AmbienceServerConfiguration config = new AmbienceServerConfiguration();
     Assert.Throws<ArgumentNullException>(() => config.Credential = null);
 }
Ejemplo n.º 14
0
        public void DatabasePath_ThrowsIfValueIsEmpty()
        {
            AmbienceServerConfiguration config = new AmbienceServerConfiguration();

            Assert.Throws <ArgumentException>(() => config.DatabasePath = "");
        }
 public void Port_ThrowsIfOutOfRange(int value)
 {
     AmbienceServerConfiguration config = new AmbienceServerConfiguration();
     Assert.Throws<ArgumentOutOfRangeException>(() => config.Port = value);
 }
Ejemplo n.º 16
0
 private int RunAsService(AmbienceServerConfiguration configuration)
 {
     ServiceBase[] services = new ServiceBase[] { new AmbienceService(configuration) };
     ServiceBase.Run(services);
     return(ResultCode.Success);
 }
Ejemplo n.º 17
0
        public void Port_ThrowsIfOutOfRange(int value)
        {
            AmbienceServerConfiguration config = new AmbienceServerConfiguration();

            Assert.Throws <ArgumentOutOfRangeException>(() => config.Port = value);
        }