private void StoreNewNuimoOptions(NuimoOptions newOptions) { lock (lockObject) { var file = _fileProvider.GetFileInfo("appSettings.json"); var settingsJson = System.IO.File.ReadAllText(file.PhysicalPath); dynamic settings = JsonConvert.DeserializeObject(settingsJson); settings["NuimoOptions"] = JToken.FromObject(newOptions); settingsJson = JsonConvert.SerializeObject(settings, Formatting.Indented); System.IO.File.WriteAllText(file.PhysicalPath, settingsJson); } }
public async void Run(IBackgroundTaskInstance taskInstance) { // // TODO: Insert code to perform background work // // If you start any asynchronous methods here, prevent the task // from closing prematurely by using BackgroundTaskDeferral as // described in http://aka.ms/backgroundtaskdeferral // _deferral = taskInstance.GetDeferral(); taskInstance.Canceled += OnTaskCanceled; NuimoOptions options = await OptionsDownloader.GetOptions(); while (options == null) { Debug.WriteLine("Could not get settings. Retrying."); await Task.Delay(5000); options = await OptionsDownloader.GetOptions(); } _optionsHash = options.GetHashCode(); var nuimoHub = new NuimoHub(options); nuimoHub.Start(); while (true) { var newOptions = await OptionsDownloader.GetOptions(); if (newOptions.GetHashCode() != _optionsHash) { Debug.WriteLine("New settings detected. Shutting down."); _deferral.Complete(); } await Task.Delay(5000); } }
public NuimoHub(NuimoOptions options) { _options = options; var apps = new List <INuimoApp> { new TimerApp.TimerApp(), new TestApp.TestApp() }; if (options.ChromecastOptions != null) { //apps.Add(new CastApp.CastApp(options.ChromecastOptions)); } if (options.HueOptions != null) { apps.Add(new HueApp.HueApp(options.HueOptions)); } Applications = new LinkedList <INuimoApp>(apps); }
public HueController(IOptionsSnapshot <NuimoOptions> nuimoOptions, INuimoOptionsWriter nuimoOptionsWriter) { _nuimoOptions = nuimoOptions.Value; _nuimoOptionsWriter = nuimoOptionsWriter; }
public ConfigurationController(IOptionsSnapshot <NuimoOptions> nuimoOptions) { _nuimoOptions = nuimoOptions.Value; }
public NuimoOptionsWriter(IOptionsSnapshot <NuimoOptions> nuimoOptions, IFileProvider fileProvider) { _nuimoOptions = nuimoOptions.Value; _fileProvider = fileProvider; }