public void InitializationValues_SetOnLightInstance() { _lightInstance = new Model.Light { Intensity = Color.FromScRgb(1.0F, _t1.X, _t1.Y, _t1.Z), Position = _t2 }; }
private async Task SendCompletionMessageForCancellation(string room) { // Begin loading data to search for the target store. If this operation is going to take a long time, // for instance, requiring a response from a remote web service, consider inserting a progress screen // here, in order to prevent Cortana from timing out. string progressScreenString = string.Format( cortanaResourceMap.GetValue("ProgressLookingForLightInRoom", cortanaContext).ValueAsString, room); await ShowProgressScreen(progressScreenString); Model.LightStore store = new Model.LightStore(); await store.LoadLights(); // We might have multiple trips to the destination. For now, we just pick the first. IEnumerable <Model.Light> lights = store.Lights.Where(p => p.Room == room); Model.Light light = null; if (lights.Count() > 1) { // If there is more than one trip, provide a disambiguation screen rather than just picking one // however, more advanced logic here might be ideal (ie, if there's a significant number of items, // you may want to just fall back to a link to your app where you can provide a deeper search experience. string disambiguationDestinationString = string.Format( cortanaResourceMap.GetValue("DisambiguationWhichTripToDest", cortanaContext).ValueAsString, room); string disambiguationRepeatString = cortanaResourceMap.GetValue("DisambiguationRepeat", cortanaContext).ValueAsString; light = await DisambiguateLights(lights, disambiguationDestinationString, disambiguationRepeatString); } else { // One or no trips exist with that destination, so retrieve it, or return null. light = lights.FirstOrDefault(); } var userPrompt = new VoiceCommandUserMessage(); VoiceCommandResponse response; if (light == null) { var userMessage = new VoiceCommandUserMessage(); // In this scenario, perhaps someone has modified data on your service outside of this // apps control. If you're accessing a remote service, having a background task that // periodically refreshes the phrase list so it's likely to be in sync is ideal. // This is unlikely to occur for this sample app, however. string noSuchTripToDestination = string.Format( cortanaResourceMap.GetValue("NoSuchTripToDestination", cortanaContext).ValueAsString, room); userMessage.DisplayMessage = userMessage.SpokenMessage = noSuchTripToDestination; response = VoiceCommandResponse.CreateResponse(userMessage); await voiceServiceConnection.ReportSuccessAsync(response); } else { // Prompt the user for confirmation that we've selected the correct trip to cancel. string cancelTripToDestination = string.Format( cortanaResourceMap.GetValue("CancelTripToDestination", cortanaContext).ValueAsString, room); userPrompt.DisplayMessage = userPrompt.SpokenMessage = cancelTripToDestination; var userReprompt = new VoiceCommandUserMessage(); string confirmCancelTripToDestination = string.Format( cortanaResourceMap.GetValue("ConfirmCancelTripToDestination", cortanaContext).ValueAsString, room); userReprompt.DisplayMessage = userReprompt.SpokenMessage = confirmCancelTripToDestination; response = VoiceCommandResponse.CreateResponseForPrompt(userPrompt, userReprompt); var voiceCommandConfirmation = await voiceServiceConnection.RequestConfirmationAsync(response); // If RequestConfirmationAsync returns null, Cortana's UI has likely been dismissed. if (voiceCommandConfirmation != null) { if (voiceCommandConfirmation.Confirmed == true) { string cancellingTripToDestination = string.Format( cortanaResourceMap.GetValue("CancellingTripToDestination", cortanaContext).ValueAsString, room); await ShowProgressScreen(cancellingTripToDestination); // Perform the operation to remote the trip from the app's data. // Since the background task runs within the app package of the installed app, // we can access local files belonging to the app without issue. await store.DeleteLight(light); // Provide a completion message to the user. var userMessage = new VoiceCommandUserMessage(); string cancelledTripToDestination = string.Format( cortanaResourceMap.GetValue("CancelledTripToDestination", cortanaContext).ValueAsString, room); userMessage.DisplayMessage = userMessage.SpokenMessage = cancelledTripToDestination; response = VoiceCommandResponse.CreateResponse(userMessage); await voiceServiceConnection.ReportSuccessAsync(response); } else { // Confirm no action for the user. var userMessage = new VoiceCommandUserMessage(); string keepingTripToDestination = string.Format( cortanaResourceMap.GetValue("KeepingTripToDestination", cortanaContext).ValueAsString, room); userMessage.DisplayMessage = userMessage.SpokenMessage = keepingTripToDestination; response = VoiceCommandResponse.CreateResponse(userMessage); await voiceServiceConnection.ReportSuccessAsync(response); } } } }