private static DbConfiguration GetDbConfiguration() { DbConfiguration dbConfiguration = new DbConfiguration(); ConfigurationLoader.GetConfiguration("appSettings").GetSection("NeuralmDb").Bind(dbConfiguration); return(dbConfiguration); }
protected override DbConfiguration GetDbConfiguration() { DbConfiguration dbConfiguration = new DbConfiguration(); ConfigurationLoader.GetConfiguration("appSettings").GetSection("Database").Bind(dbConfiguration); return(dbConfiguration); }
private static DbConfiguration GetDbConfiguration() { DbConfiguration dbConfiguration = new DbConfiguration(); ConfigurationLoader.GetConfiguration("appsettings").GetSection("Database").Bind(dbConfiguration); return(dbConfiguration); }
/// <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(); }
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); }
/// <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); }
/// <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)); }
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); }
//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; } }
/// <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); }
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")); }; }
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"); } }
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")); }
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); }
public static NodeConfiguration GetDefault() { return(ConfigurationLoader.GetConfiguration <NodeConfiguration>("node.json")); }
/// <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); }
public static StitchesConfiguration GetDefault() { return(ConfigurationLoader.GetConfiguration <StitchesConfiguration>("stitches.json")); }