BackgroundTasks.LightControllerVoiceCommandService.Run C# (CSharp) Method

Run() public method

Entry point for the background task.
public Run ( IBackgroundTaskInstance taskInstance ) : void
taskInstance IBackgroundTaskInstance
return void
        public async void Run(IBackgroundTaskInstance taskInstance)
        {
            var triggerDetails = taskInstance.TriggerDetails as AppServiceTriggerDetails;
            if (null != triggerDetails && triggerDetails.Name == "LightControllerVoiceCommandService")
            {
                _deferral = taskInstance.GetDeferral();
                taskInstance.Canceled += (s, e) => _deferral.Complete();
                if (true != await InitializeAsync(triggerDetails))
                {
                    return;
                }
                // These command phrases are coded in the VoiceCommands.xml file.
                switch (_voiceCommand.CommandName)
                {
                    case "changeLightsState": await ChangeLightStateAsync(); break;
                    case "changeLightsColor": await SelectColorAsync(); break;
                    case "changeLightStateByName": await ChangeSpecificLightStateAsync(); break;
                    default: await _voiceServiceConnection.RequestAppLaunchAsync(
                        CreateCortanaResponse("Launching HueLightController")); break;
                }
                // keep alive for 1 second to ensure all HTTP requests sent.
                await Task.Delay(1000);
                _deferral.Complete();
            }
        }