Ejemplo n.º 1
0
        private static DbConfiguration GetDbConfiguration()
        {
            DbConfiguration dbConfiguration = new DbConfiguration();

            ConfigurationLoader.GetConfiguration("appSettings").GetSection("NeuralmDb").Bind(dbConfiguration);
            return(dbConfiguration);
        }
Ejemplo n.º 2
0
        protected override DbConfiguration GetDbConfiguration()
        {
            DbConfiguration dbConfiguration = new DbConfiguration();

            ConfigurationLoader.GetConfiguration("appSettings").GetSection("Database").Bind(dbConfiguration);
            return(dbConfiguration);
        }
Ejemplo n.º 3
0
        private static DbConfiguration GetDbConfiguration()
        {
            DbConfiguration dbConfiguration = new DbConfiguration();

            ConfigurationLoader.GetConfiguration("appsettings").GetSection("Database").Bind(dbConfiguration);
            return(dbConfiguration);
        }
Ejemplo n.º 4
0
 /// <summary>
 /// Initialization, reads the configuration from the DAL
 /// </summary>
 private void Initialize()
 {
     _configurationLoader = new ConfigurationLoader(_configurationFile);
     if (_remoteConfigurationFile != null && _remoteConfigurationFile != "")
     {
         _configurationLoader.AppendConfiguration(_remoteConfigurationFile);
     }
     _systemConfiguration = _configurationLoader.GetConfiguration();
     Validate();
 }
Ejemplo n.º 5
0
        public void LoadRemoteConfigurationTest()
        {
            // If the system configuration version changes, you need to adapt/review this test case
            Assert.AreEqual("3.0", SystemConfiguration.VERSION);

            string file = @"NuvoControlKonfigurationUnitTest.xml";
            ConfigurationLoader target = new ConfigurationLoader(file);
            SystemConfiguration systemConfiguration = target.GetConfiguration();

            Assert.AreEqual("3.0", systemConfiguration.ConfigurationVersion);
            Assert.AreEqual(8, systemConfiguration.Functions.Count);

            string appendfile = @"http://www.imfeld.net/publish/configuration/NuvoControlKonfigurationRemote.xml";

            target.AppendConfiguration(appendfile);
            systemConfiguration = target.GetConfiguration();
            Assert.AreEqual("3.0", systemConfiguration.ConfigurationVersion);
            Assert.AreEqual(10, systemConfiguration.Functions.Count);
        }
Ejemplo n.º 6
0
        /// <summary>
        /// Check if configuration file changed. If yes, reload them.
        /// </summary>
        /// <returns>true if configuration file changed and reloaded.</returns>
        private bool RefreshConfiguration()
        {
            bool bRefresh = _configurationLoader.RefreshConfiguration();

            if (bRefresh)
            {
                _systemConfiguration = _configurationLoader.GetConfiguration();
                Validate();
            }
            return(bRefresh);
        }
Ejemplo n.º 7
0
        /// <summary>
        /// Runs the <see cref="Program"/> asynchronously.
        /// </summary>
        /// <param name="cancellationToken">The cancellation token.</param>
        /// <returns>Returns an awaitable <see cref="Task"/>.</returns>
        private async Task RunAsync(CancellationToken cancellationToken)
        {
            IConfiguration configuration;

            try
            {
                configuration = ConfigurationLoader.GetConfiguration("appSettings");
            }
            catch (Exception)
            {
                Console.WriteLine("Please check if you have a valid appSettings.json!");
                CancellationTokenSource.Cancel();
                return;
            }
            Startup startup = new Startup(CancellationTokenSource);

            Console.WriteLine("Initializing...");
            await startup.InitializeAsync(configuration, cancellationToken);

            cancellationToken.ThrowIfCancellationRequested();
            Console.WriteLine("Finished initializing!\n");

            Interlocked.Exchange(ref _canReadConsole, 1);
            Interlocked.Exchange(ref _canExit, 1);

            _genericServiceProvider = startup.GetGenericServiceProvider();
            GetEnabledTrainingRoomsResponse getEnabledTrainingRoomsResponse = await _genericServiceProvider.GetService <ITrainingRoomService>()
                                                                              .GetEnabledTrainingRoomsAsync(new GetEnabledTrainingRoomsRequest());

            foreach (TrainingRoomDto trainingRoomDto in getEnabledTrainingRoomsResponse.TrainingRooms)
            {
                Console.WriteLine($"TrainingRoom:\n\tId: {trainingRoomDto.Id}\n\tName: {trainingRoomDto.Name}\n\tOwner: {trainingRoomDto.Owner.Username}");
            }

            ServerConfiguration serverConfiguration = _genericServiceProvider.GetService <IOptions <ServerConfiguration> >().Value;
            TcpListener         tcpListener         = new TcpListener(IPAddress.Any, serverConfiguration.Port);

            tcpListener.Start();
            Console.WriteLine($"Started listening for clients on port: {serverConfiguration.Port}.");
            while (!cancellationToken.IsCancellationRequested)
            {
                TcpClient tcpClient = await tcpListener.AcceptTcpClientAsync();

                Console.WriteLine($"Accepted a new connection: \n\tLocalEndPoint: {tcpClient.Client.LocalEndPoint}\n\tRemoteEndPoint: {tcpClient.Client.RemoteEndPoint}");
                _ = Task.Run(async() =>
                {
                    IMessageProcessor messageProcessor      = new ServerMessageProcessor(_genericServiceProvider.GetService <MessageToServiceMapper>());
                    IMessageSerializer messageSerializer    = new JsonMessageSerializer();
                    SslTcpNetworkConnector networkConnector = new SslTcpNetworkConnector(messageSerializer, messageProcessor, tcpClient);
                    await networkConnector.AuthenticateAsServer(serverConfiguration.Certificate, CancellationToken.None);
                    networkConnector.Start();
                }, cancellationToken);
            }
        }
        public static async Task <HttpResponseMessage> Run([HttpTrigger(AuthorizationLevel.Function, "post", Route = null)] HttpRequestMessage req, TraceWriter log)
        {
            // Composition root.

            IMailProviderFactory factory       = new MailProviderFactory();
            IConfigurationLoader configuration = new ConfigurationLoader();
            IMapper mapper = null;

            var config = configuration.GetConfiguration();

            if (!config.ContainsKey("MailProvider"))
            {
                return(req.CreateErrorResponse(HttpStatusCode.InternalServerError, "Mail Provider not configured."));
            }

            log.Info($"Using \"{configuration.GetConfiguration()["MailProvider"]}\" provider.");
            var provider = factory.GetProvider(configuration, mapper);

            return(req.CreateResponse(HttpStatusCode.OK));
        }
Ejemplo n.º 9
0
        public void CheckConfigurationDateTimeTest()
        {
            string file                = @"NuvoControlKonfigurationUnitTest.xml";
            string appendfile          = @"http://www.imfeld.net/publish/configuration/NuvoControlKonfigurationRemote.xml";
            ConfigurationLoader target = new ConfigurationLoader(file);

            target.AppendConfiguration(appendfile);
            SystemConfiguration systemConfiguration = target.GetConfiguration();

            bool bChanged = target.RefreshConfiguration();

            Assert.IsFalse(bChanged);
        }
Ejemplo n.º 10
0
        //constructor
        public TrayApplication()
        {
            //setup controls
            _contextmenu    = new ContextMenuStrip();
            _exitoption     = new ToolStripMenuItem("Exit");
            _aboutoption    = new ToolStripMenuItem("About");
            _keywordsoption = new ToolStripMenuItem("Keywords");
            _trayicon       = new NotifyIcon();
            //setup tray icon and tooltip
            System.IO.Stream           st;
            System.Reflection.Assembly a = Assembly.GetExecutingAssembly();
            st             = a.GetManifestResourceStream("LogoIcon");
            _trayicon.Icon = new System.Drawing.Icon(st);
            _trayicon.Text = String.Format("NRobotRemoteTray version {0}", Assembly.GetExecutingAssembly().GetName().Version);
            //setup context menu
            _contextmenu.Items.Add(_keywordsoption);
            _contextmenu.Items.Add(_aboutoption);
            _contextmenu.Items.Add(_exitoption);
            //setup events
            _exitoption.Click     += ExitOptionClick;
            _aboutoption.Click    += AboutOptionClick;
            _keywordsoption.Click += KeywordsOptionClick;
            //display
            _trayicon.ContextMenuStrip = _contextmenu;
            _trayicon.Visible          = true;

            //setup nrobotremote
            try
            {
                //get config
                _config = ConfigurationLoader.GetConfiguration();

                //start service
                RemoteService srv = new RemoteService(_config);
                srv.StopRequested += OnStopHandler;
                srv.StartAsync();
                IsRunning = true;
            }
            catch (Exception e)
            {
                MessageBox.Show(String.Format("Unable to start Remote Server: \n\n{0}", e.ToString()), "Error", MessageBoxButtons.OK);
                IsRunning = false;
            }
        }
Ejemplo n.º 11
0
        /// <summary>
        /// Runs the program asynchronously.
        /// </summary>
        /// <param name="cancellationToken">The cancellation token.</param>
        /// <returns>Returns an awaitable <see cref="Task"/>.</returns>
        private async Task RunAsync(CancellationToken cancellationToken)
        {
            IConfiguration configuration;

            try
            {
                configuration = ConfigurationLoader.GetConfiguration("appsettings");
            }
            catch (Exception e)
            {
                Console.WriteLine("Please check if you have a valid appsettings.json!");
                Console.WriteLine(e.Message);
                CancellationTokenSource.Cancel();
                return;
            }

            Startup startup = new Startup(CancellationTokenSource, 60);

            Console.WriteLine("Initializing...");
            await startup.InitializeAsync(configuration, cancellationToken);

            cancellationToken.ThrowIfCancellationRequested();
            Console.WriteLine("Finished initializing!");

            IGenericServiceProvider genericServiceProvider = startup.GetGenericServiceProvider();

            IRegistryService registryService = genericServiceProvider.GetService <IRegistryService>();

            _ = Task.Run(async() => await registryService.StartReceivingServiceEndPointsAsync(cancellationToken), cancellationToken);
            Console.WriteLine("Started RegistryService EndPoint.");

            _ = Task.Run(async() => await registryService.StartMonitoringServicesAsync(cancellationToken), cancellationToken);
            Console.WriteLine("Started monitoring services.");

            IClientMessageProcessor clientMessageProcessor = genericServiceProvider.GetService <IClientMessageProcessor>();

            _ = Task.Run(async() => await clientMessageProcessor.StartAsync(cancellationToken), cancellationToken);
            Console.WriteLine("Started client messaging EndPoint.");

            Interlocked.Exchange(ref _canReadConsole, 1);
            Interlocked.Exchange(ref _canExit, 1);
        }
Ejemplo n.º 12
0
        private void Initialize()
        {
            _conf = ConfigurationLoader.GetConfiguration();

            _timer.Interval = new TimeSpan(TimeSpan.TicksPerSecond);
            _timer.Tick    += (s, a) =>
            {
                // Substract a second.
                _time = _time.Subtract(new TimeSpan(0, 0, 1));

                if (_time.TotalSeconds.Equals(0))
                {
                    RestartTimer();
                }

                // Draw the current time and color.
                UpdateClockColor();
                lblClock.Content = string.Format(_time.ToString("mm':'ss"));
            };
        }
Ejemplo n.º 13
0
 public static HttpConfiguration GetDefault()
 {
     return(ConfigurationLoader.GetConfiguration <HttpConfiguration>("http.json"));
 }
        static async Task Main(string[] args)
        {
            AppDomain.CurrentDomain.UnhandledException += Global_UnhandledException;

            #region Config

            var configuration = ConfigurationLoader.GetConfiguration();

            var provider         = configuration["Database:Provider"];
            var connectionName   = configuration["Database:ConnectionString"] ?? "devices";
            var connectionString = configuration.GetConnectionString(connectionName);

            if (!int.TryParse(configuration["SignalsRegistration:Delay"], out int delay))
            {
                delay = 2000;
            }

            if (!Enum.TryParse(configuration["SignalsRegistration:Startup"], out StartupMode startupMode))
            {
                startupMode = StartupMode.database;
            }

            #endregion

            #region Services

            // Data context
            var context = new ANSContext(connectionString, provider);
            context.Database.Migrate();

            // API
            var api = new AdamantApi(configuration);

            #endregion

            #region DI & NLog

            var nLogConfig = configuration["SignalsRegistration:NlogConfig"];
            if (String.IsNullOrEmpty(nLogConfig))
            {
                nLogConfig = "nlog.config";
            }

            else
            {
                nLogConfig = Utilities.HandleUnixHomeDirectory(nLogConfig);
            }

            _logger = NLog.LogManager.LoadConfiguration(nLogConfig).GetCurrentClassLogger();

            var services = new ServiceCollection();

            // Application services

            services.AddSingleton <IConfiguration>(configuration);
            services.AddSingleton <AdamantApi>();
            services.AddSingleton(context);

            services.AddSingleton <SignalsPoller>();

            // Other
            services.AddSingleton <ILoggerFactory, LoggerFactory>();
            services.AddSingleton(typeof(ILogger <>), typeof(Logger <>));
            services.AddLogging(b => b.SetMinimumLevel(LogLevel.Trace));

            var serviceProvider = services.BuildServiceProvider();

            var loggerFactory = serviceProvider.GetRequiredService <ILoggerFactory>();

            loggerFactory.AddNLog(new NLogProviderOptions {
                CaptureMessageTemplates = true, CaptureMessageProperties = true
            });

            #endregion

            var totalDevices = context.Devices.Count();
            _logger.Info("Database initialized. Total devices in db: {0}", totalDevices);
            _logger.Info("Starting polling. Delay: {0}ms.", delay);

            var address = configuration["SignalsRegistration:Address"];
            if (string.IsNullOrEmpty(address))
            {
                throw new Exception("ANS account address is required");
            }

            var privateKey = configuration["SignalsRegistration:PrivateKey"];
            if (string.IsNullOrEmpty(privateKey))
            {
                throw new Exception("ANS account private key is required");
            }

            var worker = serviceProvider.GetRequiredService <SignalsPoller>();
            worker.Delay      = TimeSpan.FromMilliseconds(delay);
            worker.Address    = address;
            worker.PrivateKey = privateKey;
            worker.StartPolling(startupMode);

            if (worker.PollingTask != null)
            {
                await worker.PollingTask;
            }
            else
            {
                throw new Exception("Can't await worker");
            }
        }
Ejemplo n.º 15
0
 public static Configuration GetDefault()
 {
     return(ConfigurationLoader.GetConfiguration <Configuration>("data.json"));
 }
        static void Main()
        {
            AppDomain.CurrentDomain.UnhandledException += Global_UnhandledException;

            #region Config

            var configuration = ConfigurationLoader.GetConfiguration();

            var provider         = configuration["Database:Provider"];
            var connectionName   = configuration["Database:ConnectionString"] ?? "devices";
            var connectionString = configuration.GetConnectionString(connectionName);

            if (!int.TryParse(configuration["PollingWorker:Delay"], out int delay))
            {
                delay = 2000;
            }

            if (!Enum.TryParse(configuration["PollingWorker:Startup"], out StartupMode startupMode))
            {
                startupMode = StartupMode.database;
            }

            #endregion

            #region Services

            // Data context
            _context = new ANSContext(connectionString, provider);
            _context.Database.Migrate();

            // API
            var api = new AdamantApi(configuration);

            #endregion

            #region DI & NLog

            var nLogConfig = configuration["PollingWorker:NlogConfig"];
            if (String.IsNullOrEmpty(nLogConfig))
            {
                nLogConfig = "nlog.config";
            }
            else
            {
                nLogConfig = Utilities.HandleUnixHomeDirectory(nLogConfig);
            }

            _logger = NLog.LogManager.LoadConfiguration(nLogConfig).GetCurrentClassLogger();

            var services = new ServiceCollection();

            // Application services

            services.AddSingleton <IConfiguration>(configuration);
            services.AddSingleton <AdamantApi>();
            services.AddSingleton(typeof(IPusher), typeof(ApplePusher.ApplePusher));
            services.AddSingleton(_context);

            // Polling workers
            services.AddSingleton <ChatPollingWorker>();
            services.AddSingleton <TransferPollingWorker>();

            // Other
            services.AddSingleton <ILoggerFactory, LoggerFactory>();
            services.AddSingleton(typeof(ILogger <>), typeof(Logger <>));
            services.AddLogging(b => b.SetMinimumLevel(LogLevel.Trace));

            var serviceProvider = services.BuildServiceProvider();

            var loggerFactory = serviceProvider.GetRequiredService <ILoggerFactory>();

            loggerFactory.AddNLog(new NLogProviderOptions {
                CaptureMessageTemplates = true, CaptureMessageProperties = true
            });

            #endregion

            var totalDevices = _context.Devices.Count();
            _logger.Info("Database initialized. Total devices in db: {0}", totalDevices);
            _logger.Info("Starting polling. Delay: {0}ms.", delay);

            var applePusher = serviceProvider.GetRequiredService <IPusher>();
            applePusher.OnInvalidToken += ApplePusher_OnInvalidToken;
            applePusher.Start();

            var chatWorker = serviceProvider.GetRequiredService <ChatPollingWorker>();
            chatWorker.Delay = TimeSpan.FromMilliseconds(delay);
            chatWorker.StartPolling(startupMode);

            var transferWorker = serviceProvider.GetRequiredService <TransferPollingWorker>();
            transferWorker.Delay = TimeSpan.FromMilliseconds(delay);
            transferWorker.StartPolling(startupMode);

            Task.WaitAll(chatWorker.PollingTask, transferWorker.PollingTask);
        }
 public static BackplaneConfiguration GetDefault()
 {
     return(ConfigurationLoader.GetConfiguration <BackplaneConfiguration>("backplane.json"));
 }
Ejemplo n.º 18
0
        public void GetConfigurationTest()
        {
            // If the system configuration version changes, you need to adapt/review this test case
            Assert.AreEqual("3.0", SystemConfiguration.VERSION);

            string file = @"NuvoControlKonfigurationUnitTest2.xml";
            ConfigurationLoader target = new ConfigurationLoader(file);
            SystemConfiguration systemConfiguration = target.GetConfiguration();

            Assert.AreEqual("3.0", systemConfiguration.ConfigurationVersion);

            TestContext.WriteLine("Testing device communication parameters...");
            Assert.AreEqual(systemConfiguration.Hardware.Devices[0].Id, 100);
            Assert.AreEqual(systemConfiguration.Hardware.Devices[0].Communication.BaudRate, 9600);
            Assert.AreEqual(systemConfiguration.Hardware.Devices[0].Communication.DataBits, 8);
            Assert.AreEqual(systemConfiguration.Hardware.Devices[0].Communication.ParityBit, 1);
            Assert.AreEqual(systemConfiguration.Hardware.Devices[0].Communication.ParityMode, "None");

            TestContext.WriteLine("Testing device protocol driver parameters...");
            Assert.AreEqual(systemConfiguration.Hardware.Devices[0].ProtocolDriver.Name, "Nuvo Essentia Protokoll Driver");
            Assert.AreEqual(systemConfiguration.Hardware.Devices[0].ProtocolDriver.AssemblyName, "NuvoControl.Server.ProtocolDriver");
            Assert.AreEqual(systemConfiguration.Hardware.Devices[0].ProtocolDriver.ClassName, "NuvoControl.Server.ProtocolDriver.NuvoEssentiaProtocolDriver");

            TestContext.WriteLine("Testing audio driver parameters...");
            Assert.AreEqual(3, systemConfiguration.Hardware.Devices[0].AudioDevices.Count);
            Assert.AreEqual(new Address(100, 1), systemConfiguration.Hardware.Devices[0].AudioDevices[0].Id);
            Assert.AreEqual(1, systemConfiguration.Hardware.Devices[0].AudioDevices[0].Id.ObjectId);
            Assert.AreEqual(new Address(100, 2), systemConfiguration.Hardware.Devices[0].AudioDevices[1].Id);
            Assert.AreEqual(2, systemConfiguration.Hardware.Devices[0].AudioDevices[1].Id.ObjectId);
            Assert.AreEqual(3, systemConfiguration.Hardware.Devices[0].AudioDevices[2].Id.ObjectId);
            Assert.AreEqual("hw:0,0", systemConfiguration.Hardware.Devices[0].AudioDevices[0].Device);

            TestContext.WriteLine("Testing osc driver parameters...");
            Assert.AreEqual(3, systemConfiguration.Hardware.Devices[0].OscDevices.Count);
            // OSC Client 1
            Assert.AreEqual(eOSCDeviceType.OSCClient, systemConfiguration.Hardware.Devices[0].OscDevices[0].DeviceType);
            Assert.AreEqual(2, systemConfiguration.Hardware.Devices[0].OscDevices[0].Id.ObjectId);
            Assert.AreEqual(9000, systemConfiguration.Hardware.Devices[0].OscDevices[0].SendPort);
            Assert.AreEqual(-1, systemConfiguration.Hardware.Devices[0].OscDevices[0].ListenPort);
            // OSC Server
            Assert.AreEqual(eOSCDeviceType.OSCServer, systemConfiguration.Hardware.Devices[0].OscDevices[2].DeviceType);
            Assert.AreEqual(1, systemConfiguration.Hardware.Devices[0].OscDevices[2].Id.ObjectId);
            Assert.AreEqual(9000, systemConfiguration.Hardware.Devices[0].OscDevices[2].SendPort);
            Assert.AreEqual(8000, systemConfiguration.Hardware.Devices[0].OscDevices[2].ListenPort);
            // OSC Client 2
            Assert.AreEqual(eOSCDeviceType.OSCClient, systemConfiguration.Hardware.Devices[0].OscDevices[1].DeviceType);
            Assert.AreEqual(3, systemConfiguration.Hardware.Devices[0].OscDevices[1].Id.ObjectId);
            Assert.AreEqual(9002, systemConfiguration.Hardware.Devices[0].OscDevices[1].SendPort);
            Assert.AreEqual(-1, systemConfiguration.Hardware.Devices[0].OscDevices[1].ListenPort);
            Assert.AreEqual(18, systemConfiguration.Hardware.Devices[0].OscDevices[1].OscDeviceLayouts.Count);

            TestContext.WriteLine("Testing device zone parameters...");
            Assert.AreEqual(12, systemConfiguration.Hardware.Devices[0].ZoneList.Count);
            Assert.AreEqual(1, systemConfiguration.Hardware.Devices[0].ZoneList[0].Id.ObjectId);
            Assert.AreEqual(2, systemConfiguration.Hardware.Devices[0].ZoneList[1].Id.ObjectId);
            Assert.AreEqual(3, systemConfiguration.Hardware.Devices[0].ZoneList[2].Id.ObjectId);
            Assert.AreEqual(4, systemConfiguration.Hardware.Devices[0].ZoneList[3].Id.ObjectId);
            Assert.AreEqual(5, systemConfiguration.Hardware.Devices[0].ZoneList[4].Id.ObjectId);
            Assert.AreEqual(6, systemConfiguration.Hardware.Devices[0].ZoneList[5].Id.ObjectId);
            Assert.AreEqual(7, systemConfiguration.Hardware.Devices[0].ZoneList[6].Id.ObjectId);
            Assert.AreEqual(8, systemConfiguration.Hardware.Devices[0].ZoneList[7].Id.ObjectId);
            Assert.AreEqual(9, systemConfiguration.Hardware.Devices[0].ZoneList[8].Id.ObjectId);
            Assert.AreEqual(10, systemConfiguration.Hardware.Devices[0].ZoneList[9].Id.ObjectId);
            Assert.AreEqual(11, systemConfiguration.Hardware.Devices[0].ZoneList[10].Id.ObjectId);
            Assert.AreEqual(12, systemConfiguration.Hardware.Devices[0].ZoneList[11].Id.ObjectId);

            TestContext.WriteLine("Testing device source parameters...");
            Assert.AreEqual(6, systemConfiguration.Hardware.Devices[0].Sources.Count);
            Assert.AreEqual(1, systemConfiguration.Hardware.Devices[0].Sources[0].Id.ObjectId);
            Assert.AreEqual(2, systemConfiguration.Hardware.Devices[0].Sources[1].Id.ObjectId);
            Assert.AreEqual(3, systemConfiguration.Hardware.Devices[0].Sources[2].Id.ObjectId);
            Assert.AreEqual(4, systemConfiguration.Hardware.Devices[0].Sources[3].Id.ObjectId);
            Assert.AreEqual(5, systemConfiguration.Hardware.Devices[0].Sources[4].Id.ObjectId);
            Assert.AreEqual(6, systemConfiguration.Hardware.Devices[0].Sources[5].Id.ObjectId);

            TestContext.WriteLine("Testing some graphic parameters...");
            Assert.AreEqual(2, systemConfiguration.Graphic.Building.Floors.Count);
            Assert.AreEqual("Wohnbereich", systemConfiguration.Graphic.Building.Floors[0].Name);
            Assert.AreEqual(@".\Images\Wohnbereich.bmp", systemConfiguration.Graphic.Building.Floors[0].FloorPlanPath);
            Assert.AreEqual("bmp", systemConfiguration.Graphic.Building.Floors[0].FloorPlanType);
            Assert.AreEqual(9, systemConfiguration.Graphic.Building.Floors[0].Zones.Count);
            Assert.AreEqual(new Address(100, 1), systemConfiguration.Graphic.Building.Floors[0].Zones[0].Id);
            Assert.AreEqual("Esszimmer", systemConfiguration.Graphic.Building.Floors[0].Zones[0].Name);
            Assert.AreEqual(@".\Images\Esszimmer.jpg", systemConfiguration.Graphic.Building.Floors[0].Zones[0].PicturePath);
            Assert.AreEqual("jpg", systemConfiguration.Graphic.Building.Floors[0].Zones[0].PictureType);
            Assert.AreEqual(4, systemConfiguration.Graphic.Building.Floors[0].Zones[0].FloorPlanCoordinates.Count);
            Assert.AreEqual(485, systemConfiguration.Graphic.Building.Floors[0].Zones[0].FloorPlanCoordinates[1].X);
            Assert.AreEqual(210, systemConfiguration.Graphic.Building.Floors[0].Zones[0].FloorPlanCoordinates[1].Y);
            Assert.AreEqual(6, systemConfiguration.Graphic.Sources.Count);
            Assert.AreEqual(new Address(100, 1), systemConfiguration.Graphic.Sources[0].Id);
            Assert.AreEqual("DAB Hama DIR3100", systemConfiguration.Graphic.Sources[0].Name);
            Assert.AreEqual(systemConfiguration.Graphic.Sources[0].PicturePath, @".\Images\Tuner.jpg");
            Assert.AreEqual(systemConfiguration.Graphic.Sources[0].PictureType, "jpg");


            TestContext.WriteLine("Testing some function parameters...");
            Assert.AreEqual(12, systemConfiguration.Functions.Count);
            SleepFunction sleepFct = systemConfiguration.Functions[0] as SleepFunction;

            Assert.AreEqual(new SimpleId("2445f69e-a5a7-465e-95be-9179913d3780"), sleepFct.Id);
            Assert.AreEqual(new Address(100, 3), sleepFct.ZoneId);
            Assert.AreEqual(new TimeSpan(0, 60, 0), sleepFct.SleepDuration);
            Assert.AreEqual(new TimeSpan(20, 00, 0), sleepFct.ValidFrom);
            Assert.AreEqual(new TimeSpan(2, 0, 0), sleepFct.ValidTo);
            Assert.AreEqual(1, sleepFct.Commands.Count);

            AlarmFunction alarmFct = systemConfiguration.Functions[3] as AlarmFunction;

            Assert.AreEqual(new SimpleId("11111111-0001-1111-1111-111111111111"), alarmFct.Id);
            Assert.AreEqual(new Address(100, 2), alarmFct.ZoneId);
            Assert.AreEqual(new TimeSpan(6, 45, 0), alarmFct.AlarmTime);
            Assert.AreEqual(new TimeSpan(2, 0, 0), alarmFct.AlarmDuration);
            Assert.AreEqual(new Address(100, 1), alarmFct.SourceId);
            Assert.AreEqual(1, alarmFct.ValidOnDays.Count);
            Assert.AreEqual(DayOfWeek.Monday, alarmFct.ValidOnDays[0]);
            Assert.AreEqual(1, alarmFct.Commands.Count);

            ZoneChangeFunction zonechangeFct = systemConfiguration.Functions[6] as ZoneChangeFunction;

            Assert.AreEqual(new SimpleId("1234"), zonechangeFct.Id);
            Assert.AreEqual(1, zonechangeFct.ValidOnDays.Count);
            Assert.AreEqual(DayOfWeek.Tuesday, zonechangeFct.ValidOnDays[0]);
            Assert.AreEqual(0, zonechangeFct.Commands.Count);

            OscEventFunction oscFunc = systemConfiguration.Functions[7] as OscEventFunction;

            Assert.AreEqual(new SimpleId("504"), oscFunc.Id);
            Assert.AreEqual(1, oscFunc.ValidOnDays.Count);
            Assert.AreEqual(DayOfWeek.Friday, oscFunc.ValidOnDays[0]);
            Assert.AreEqual(2, oscFunc.Commands.Count);

            OscEventFunction oscFunc2 = systemConfiguration.Functions[8] as OscEventFunction;

            Assert.AreEqual(new SimpleId("505"), oscFunc2.Id);
            Assert.AreEqual("/4/toggle3", oscFunc2.OscLabel);
            Assert.AreEqual(null, oscFunc2.ValidOnDays);
            Assert.AreEqual(1, oscFunc2.Commands.Count);

            OscEventFunction oscFunc3 = systemConfiguration.Functions[9] as OscEventFunction;

            Assert.AreEqual(new SimpleId("506"), oscFunc3.Id);
            Assert.AreEqual("/4/toggle5", oscFunc3.OscLabel);
            Assert.AreEqual("100.1", oscFunc3.OscDevice.ToString());
            Assert.AreEqual("SwitchOff", oscFunc3.OscEvent);
            Assert.AreEqual(null, oscFunc3.ValidOnDays);
            Assert.AreEqual(1, oscFunc3.Commands.Count);
        }
Ejemplo n.º 19
0
 public static NodeConfiguration GetDefault()
 {
     return(ConfigurationLoader.GetConfiguration <NodeConfiguration>("node.json"));
 }
Ejemplo n.º 20
0
        /// <summary>
        /// Runs the <see cref="Program"/> asynchronously.
        /// </summary>
        /// <param name="cancellationToken">The cancellation token.</param>
        /// <returns>Returns an awaitable <see cref="Task"/>.</returns>
        private async Task RunAsync(CancellationToken cancellationToken)
        {
            IConfiguration configuration;

            try
            {
                configuration = ConfigurationLoader.GetConfiguration("appSettings");
            }
            catch (Exception)
            {
                Console.WriteLine("Please check if you have a valid appSettings.json!");
                CancellationTokenSource.Cancel();
                return;
            }
            Startup startup = new Startup(CancellationTokenSource, 60);

            Console.WriteLine("Initializing...");
            await startup.InitializeAsync(configuration, cancellationToken);

            cancellationToken.ThrowIfCancellationRequested();
            Console.WriteLine("Finished initializing!\n");

            _genericServiceProvider = startup.GetGenericServiceProvider();
            GetEnabledTrainingRoomsResponse getEnabledTrainingRoomsResponse = await _genericServiceProvider.GetService <ITrainingRoomService>()
                                                                              .GetEnabledTrainingRoomsAsync(new GetEnabledTrainingRoomsRequest());

            foreach (TrainingRoomDto trainingRoomDto in getEnabledTrainingRoomsResponse.TrainingRooms)
            {
                Console.WriteLine($"TrainingRoom:\n\tId: {trainingRoomDto.Id}\n\tName: {trainingRoomDto.Name}\n\tOwner: {trainingRoomDto.Owner?.Username}");
            }

            MessageToServiceMapper messageToServiceMapper = _genericServiceProvider.GetService <MessageToServiceMapper>();
            IMessageSerializer     messageSerializer      = _genericServiceProvider.GetService <IMessageSerializer>();
            IMessageProcessor      messageProcessor       = new ServerMessageProcessor(messageToServiceMapper);

            List <Task> tasks = new List <Task>();

            Console.WriteLine("Would you like to start the ClientEndPoint? y/n");
            ConsoleKeyInfo keyInfo = await WaitForReadKey(cancellationToken);

            bool runClientEndPoint = keyInfo.KeyChar == 'y';

            if (runClientEndPoint)
            {
                tasks.Add(Task.Run(() => RunClientEndPoint(cancellationToken, messageProcessor, messageSerializer), cancellationToken));
            }
            Console.WriteLine();

            Console.WriteLine("Would you like to start the RestEndPoint? y/n");
            keyInfo = await WaitForReadKey(cancellationToken);

            bool runRestEndPoint = keyInfo.KeyChar == 'y';

            if (runRestEndPoint)
            {
                tasks.Add(Task.Run(() => RunRestEndPoint(cancellationToken, messageProcessor, messageSerializer), cancellationToken));
            }
            Console.WriteLine();

            Interlocked.Exchange(ref _canReadConsole, 1);
            Interlocked.Exchange(ref _canExit, 1);

            await Task.WhenAll(tasks).ContinueWith(task =>
            {
                if (task.IsCanceled)
                {
                    CancellationTokenSource.Cancel();
                }
            }, cancellationToken);
        }
Ejemplo n.º 21
0
 public static StitchesConfiguration GetDefault()
 {
     return(ConfigurationLoader.GetConfiguration <StitchesConfiguration>("stitches.json"));
 }