public static void Main(string[] args) { var isService = args.Contains(RunAsServiceArg); var builder = CreateWebHostBuilder(args.Where(a => a != RunAsServiceArg).ToArray()); if (isService) { var pathToExe = Process.GetCurrentProcess().MainModule.FileName; var pathToContentRoot = Path.GetDirectoryName(pathToExe); builder.UseContentRoot(pathToContentRoot); } _context = new ApplicationContext(); InitControllers(); LightsService.Init(); ModbusControllerAdapter.InvokePollingFinished(); var host = builder.Build(); if (isService) { host.RunAsService(); } else { host.Run(); } }
public async void Run(IBackgroundTaskInstance taskInstance) { _Deferral = taskInstance.GetDeferral(); var signalServer = new SignalRService(); var lightService = new LightsService(); // var chartService = new ChartService(lightService); var schedulePlan = new SchedulePlanService(); var mqttService = new MQTTServer(); await signalServer.Connect(lightService, mqttService, schedulePlan); await mqttService.ServerRun(signalServer); // var backgroundAccessStatus = await BackgroundExecutionManager.RequestAccessAsync(); // var taskName = "test"; // if (backgroundAccessStatus == AlwaysAllowed) // { // foreach (var task in BackgroundTaskRegistration.AllTasks) // { // if (task.Value.Name == taskName) // { // return; // } // } // } // // BackgroundTaskBuilder taskBuilder = new BackgroundTaskBuilder(); // taskBuilder.Name = taskName; // taskBuilder.TaskEntryPoint = // var status = await BackgroundExecutionManager.RequestAccessAsync(); // var taskName = "test"; // if (BackgroundTaskRegistration.AllTasks.All(x => x.Value.Name != taskName)) // { // BackgroundTaskBuilder builder = new BackgroundTaskBuilder(); // builder.Name = taskName; // builder.TaskEntryPoint = typeof(LightHBackgroundIotHttpService.TileUpdateTask).FullName; // builder.SetTrigger(new TimeTrigger(16,false)); // // if (status != BackgroundAccessStatus.Denied) // { // builder.Register(); // } // } // chartService.SmartSwitchingLights(true, lightService); // await ThreadPool.RunAsync(workItem => // { // webserver.Start(); // // }); }
public void SetUp() { packet = new PacketInformation(new VendorInfo("00-11-22-33-44-55", "Amazon"), PhysicalAddress.Parse("00-11-22-33-44-55")); serviceConfig = new ServiceConfig(); serviceConfig.Bridges = new Dictionary <string, BridgeConfig>(); serviceConfig.Bridges["One"] = new BridgeConfig(); serviceConfig.Buttons = new Dictionary <string, ButtonConfig>(); serviceConfig.Buttons["Main"] = new ButtonConfig(); serviceConfig.Buttons["Main"].Mac = "00-11-22-33-44-55"; serviceConfig.Buttons["Main"].Actions = new[] { new ButtonAction { Groups = new[] { "TestMain" }, Type = ButtonActionType.Simple } }; mockMonitoringManager = new Mock <IMonitoringManager>(); mockLightsManagerFactory = new Mock <ILightsManagerFactory>(); scheduler = new TestScheduler(); instance = CreateService(); }
public LightsController() { lightsService = new LightsService(new ApplicationContext()); }