From ebb536bd66d7405732dbb4ee28955a7354c6216c Mon Sep 17 00:00:00 2001 From: lauren-mills Date: Thu, 4 Apr 2019 09:55:20 -0700 Subject: [PATCH] [4.4] Updated todo skill to new folder structure + config (#1051) * cleanup * to do skill refactor * updates to todo skill folder structure + new config * updates to VA template * removed old deployment files * fixed merge issues * updated mbbs version --- .gitignore | 3 +- .../Microsoft.Bot.Builder.Skills.Tests.csproj | 2 +- .../skills/newsskill/NewsSkill.csproj | 2 +- .../RestaurantBooking.csproj | 2 +- .../automotiveskill/AutomotiveSkill.csproj | 2 +- .../calendarskill/CalendarSkill.csproj | 2 +- .../emailskill/emailskill/EmailSkill.csproj | 2 +- .../PointOfInterestSkill.csproj | 2 +- .../todoskill/Adapters/DefaultAdapter.cs | 44 ++ .../todoskill/Adapters/ToDoSkillAdapter.cs | 42 ++ .../todoskill/todoskill/Bots/DefaultBot.cs | 55 ++ .../todoskill/CognitiveModels/LUIS/de/todo.lu | 595 ------------------ .../todoskill/CognitiveModels/LUIS/en/todo.lu | 595 ------------------ .../todoskill/CognitiveModels/LUIS/es/todo.lu | 592 ----------------- .../todoskill/CognitiveModels/LUIS/fr/todo.lu | 584 ----------------- .../todoskill/CognitiveModels/LUIS/it/todo.lu | 591 ----------------- .../todoskill/CognitiveModels/LUIS/zh/todo.lu | 431 ------------- .../todoskill/DeploymentScripts/bot.recipe | 40 -- .../todoskill/DeploymentScripts/de/bot.recipe | 15 - .../DeploymentScripts/deploy_bot.ps1 | 50 -- .../todoskill/DeploymentScripts/en/bot.recipe | 15 - .../todoskill/DeploymentScripts/es/bot.recipe | 15 - .../todoskill/DeploymentScripts/fr/bot.recipe | 15 - .../generate_deployment_scripts.ps1 | 29 - .../todoskill/DeploymentScripts/it/bot.recipe | 15 - .../update_published_models.ps1 | 40 -- .../todoskill/DeploymentScripts/zh/bot.recipe | 15 - .../todoskill/Dialogs/{Shared => }/Action.cs | 2 +- .../{AddToDo => }/AddToDoItemDialog.cs | 16 +- .../todoskill/todoskill/Dialogs/AuthDialog.cs | 184 ++++++ .../{DeleteToDo => }/DeleteToDoItemDialog.cs | 18 +- .../Dialogs/{Main => }/MainDialog.cs | 93 ++- .../{MarkToDo => }/MarkToDoItemDialog.cs | 16 +- .../DialogOptions/ToDoSkillDialogOptions.cs | 7 - .../Dialogs/Shared/ServiceProviderTypes.cs | 23 - .../{ShowToDo => }/ShowToDoItemDialog.cs | 16 +- ...oSkillDialog.cs => ToDoSkillDialogBase.cs} | 114 ++-- .../todoskill/Models/OAuthConnection.cs | 9 + .../todoskill/Models/ServiceProviderTypes.cs | 20 + .../todoskill/{ => Models}/ToDoSkillState.cs | 7 +- .../{ => Models}/ToDoSkillUserState.cs | 0 .../AddToDo}/AddToDoResponses.cs | 2 +- .../AddToDo}/AddToDoResponses.de.json | Bin .../AddToDo}/AddToDoResponses.es.json | Bin .../AddToDo}/AddToDoResponses.fr.json | Bin .../AddToDo}/AddToDoResponses.it.json | Bin .../AddToDo}/AddToDoResponses.json | 0 .../AddToDo}/AddToDoResponses.tt | 2 +- .../AddToDo}/AddToDoResponses.zh.json | 0 .../DeleteToDo}/DeleteToDoResponses.cs | 2 +- .../DeleteToDo}/DeleteToDoResponses.de.json | Bin .../DeleteToDo}/DeleteToDoResponses.es.json | Bin .../DeleteToDo}/DeleteToDoResponses.fr.json | Bin .../DeleteToDo}/DeleteToDoResponses.it.json | Bin .../DeleteToDo}/DeleteToDoResponses.json | 0 .../DeleteToDo}/DeleteToDoResponses.tt | 2 +- .../DeleteToDo}/DeleteToDoResponses.zh.json | 0 .../Main/ToDoMainResponses.cs} | 2 +- .../Main}/ToDoMainResponses.de.json | Bin .../Main}/ToDoMainResponses.es.json | Bin .../Main}/ToDoMainResponses.fr.json | Bin .../Main}/ToDoMainResponses.it.json | Bin .../Main}/ToDoMainResponses.json | 0 .../Main}/ToDoMainResponses.tt | 2 +- .../Main}/ToDoMainResponses.zh.json | 0 .../MarkToDo}/MarkToDoResponses.cs | 2 +- .../MarkToDo}/MarkToDoResponses.de.json | Bin .../MarkToDo}/MarkToDoResponses.es.json | Bin .../MarkToDo}/MarkToDoResponses.fr.json | Bin .../MarkToDo}/MarkToDoResponses.it.json | Bin .../MarkToDo}/MarkToDoResponses.json | 0 .../MarkToDo}/MarkToDoResponses.tt | 2 +- .../MarkToDo}/MarkToDoResponses.zh.json | 0 .../Shared}/IconImageSource.cs | 0 .../Shared}/ResponseIdCollection.t4 | 0 .../Shared}/ToDoSharedResponses.cs | 2 +- .../Shared}/ToDoSharedResponses.de.json | Bin .../Shared}/ToDoSharedResponses.es.json | Bin .../Shared}/ToDoSharedResponses.fr.json | Bin .../Shared}/ToDoSharedResponses.it.json | Bin .../Shared}/ToDoSharedResponses.json | 0 .../Shared}/ToDoSharedResponses.tt | 2 +- .../Shared}/ToDoSharedResponses.zh.json | 0 .../Shared}/ToDoStrings.Designer.cs | 4 +- .../Shared}/ToDoStrings.de.resx | 0 .../Shared}/ToDoStrings.es.resx | 0 .../Shared}/ToDoStrings.fr.resx | 0 .../Shared}/ToDoStrings.it.resx | 0 .../Shared}/ToDoStrings.resx | 0 .../Shared}/ToDoStrings.zh.resx | 0 .../ShowToDo}/ShowToDoResponses.cs | 2 +- .../ShowToDo}/ShowToDoResponses.de.json | Bin .../ShowToDo}/ShowToDoResponses.es.json | Bin .../ShowToDo}/ShowToDoResponses.fr.json | Bin .../ShowToDo}/ShowToDoResponses.it.json | Bin .../ShowToDo}/ShowToDoResponses.json | 0 .../ShowToDo}/ShowToDoResponses.tt | 2 +- .../ShowToDo}/ShowToDoResponses.zh.json | 0 .../todoskill/Services/BotServices.cs | 55 ++ .../todoskill/Services/BotSettings.cs | 52 ++ .../IMailService.cs | 0 .../IServiceManager.cs | 3 +- .../ITaskService.cs | 0 .../MailService.cs | 0 .../OneNoteService.cs | 1 + .../OutlookService.cs | 1 + .../ServiceHelper.cs | 0 .../ServiceManager.cs | 5 +- .../ToDoLU.cs => Services/ToDoLuis.cs} | 0 .../skills/todoskill/todoskill/Startup.cs | 207 ++---- .../skills/todoskill/todoskill/ToDoSkill.cs | 100 --- .../todoskill/todoskill/ToDoSkill.csproj | 117 ++-- .../todoskill/todoskill/appsettings.json | 42 +- .../todoskill/todoskill/cognitivemodels.json | 27 + .../VirtualAssistantTemplate.sln | 53 ++ .../Deployment/Scripts/DispatchLuis.cs | 65 ++ .../Bots/{Adapter.cs => DefaultAdapter.cs} | 12 +- .../Bots/{Bot.cs => DefaultBot.cs} | 4 +- .../Dialogs/MainDialog.cs | 9 +- .../Models/OAuthConnection.cs | 9 + .../Services/BotServices.cs | 6 - .../Services/BotSettings.cs | 15 +- .../VirtualAssistantTemplate/Startup.cs | 41 +- .../VirtualAssistantTemplate.csproj | 2 +- 124 files changed, 971 insertions(+), 4203 deletions(-) create mode 100644 solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Adapters/DefaultAdapter.cs create mode 100644 solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Adapters/ToDoSkillAdapter.cs create mode 100644 solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Bots/DefaultBot.cs delete mode 100644 solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/CognitiveModels/LUIS/de/todo.lu delete mode 100644 solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/CognitiveModels/LUIS/en/todo.lu delete mode 100644 solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/CognitiveModels/LUIS/es/todo.lu delete mode 100644 solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/CognitiveModels/LUIS/fr/todo.lu delete mode 100644 solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/CognitiveModels/LUIS/it/todo.lu delete mode 100644 solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/CognitiveModels/LUIS/zh/todo.lu delete mode 100644 solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/DeploymentScripts/bot.recipe delete mode 100644 solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/DeploymentScripts/de/bot.recipe delete mode 100644 solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/DeploymentScripts/deploy_bot.ps1 delete mode 100644 solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/DeploymentScripts/en/bot.recipe delete mode 100644 solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/DeploymentScripts/es/bot.recipe delete mode 100644 solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/DeploymentScripts/fr/bot.recipe delete mode 100644 solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/DeploymentScripts/generate_deployment_scripts.ps1 delete mode 100644 solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/DeploymentScripts/it/bot.recipe delete mode 100644 solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/DeploymentScripts/update_published_models.ps1 delete mode 100644 solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/DeploymentScripts/zh/bot.recipe rename solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/{Shared => }/Action.cs (98%) rename solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/{AddToDo => }/AddToDoItemDialog.cs (97%) create mode 100644 solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/AuthDialog.cs rename solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/{DeleteToDo => }/DeleteToDoItemDialog.cs (97%) rename solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/{Main => }/MainDialog.cs (78%) rename solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/{MarkToDo => }/MarkToDoItemDialog.cs (97%) delete mode 100644 solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/Shared/DialogOptions/ToDoSkillDialogOptions.cs delete mode 100644 solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/Shared/ServiceProviderTypes.cs rename solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/{ShowToDo => }/ShowToDoItemDialog.cs (98%) rename solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/{Shared/ToDoSkillDialog.cs => ToDoSkillDialogBase.cs} (91%) create mode 100644 solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Models/OAuthConnection.cs create mode 100644 solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Models/ServiceProviderTypes.cs rename solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/{ => Models}/ToDoSkillState.cs (97%) rename solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/{ => Models}/ToDoSkillUserState.cs (100%) rename solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/{Dialogs/AddToDo/Resources => Responses/AddToDo}/AddToDoResponses.cs (95%) rename solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/{Dialogs/AddToDo/Resources => Responses/AddToDo}/AddToDoResponses.de.json (100%) rename solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/{Dialogs/AddToDo/Resources => Responses/AddToDo}/AddToDoResponses.es.json (100%) rename solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/{Dialogs/AddToDo/Resources => Responses/AddToDo}/AddToDoResponses.fr.json (100%) rename solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/{Dialogs/AddToDo/Resources => Responses/AddToDo}/AddToDoResponses.it.json (100%) rename solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/{Dialogs/AddToDo/Resources => Responses/AddToDo}/AddToDoResponses.json (100%) rename solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/{Dialogs/AddToDo/Resources => Responses/AddToDo}/AddToDoResponses.tt (58%) rename solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/{Dialogs/AddToDo/Resources => Responses/AddToDo}/AddToDoResponses.zh.json (100%) rename solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/{Dialogs/DeleteToDo/Resources => Responses/DeleteToDo}/DeleteToDoResponses.cs (96%) rename solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/{Dialogs/DeleteToDo/Resources => Responses/DeleteToDo}/DeleteToDoResponses.de.json (100%) rename solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/{Dialogs/DeleteToDo/Resources => Responses/DeleteToDo}/DeleteToDoResponses.es.json (100%) rename solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/{Dialogs/DeleteToDo/Resources => Responses/DeleteToDo}/DeleteToDoResponses.fr.json (100%) rename solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/{Dialogs/DeleteToDo/Resources => Responses/DeleteToDo}/DeleteToDoResponses.it.json (100%) rename solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/{Dialogs/DeleteToDo/Resources => Responses/DeleteToDo}/DeleteToDoResponses.json (100%) rename solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/{Dialogs/DeleteToDo/Resources => Responses/DeleteToDo}/DeleteToDoResponses.tt (58%) rename solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/{Dialogs/DeleteToDo/Resources => Responses/DeleteToDo}/DeleteToDoResponses.zh.json (100%) rename solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/{Dialogs/Main/Resources/TODoMainResponses.cs => Responses/Main/ToDoMainResponses.cs} (94%) rename solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/{Dialogs/Main/Resources => Responses/Main}/ToDoMainResponses.de.json (100%) rename solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/{Dialogs/Main/Resources => Responses/Main}/ToDoMainResponses.es.json (100%) rename solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/{Dialogs/Main/Resources => Responses/Main}/ToDoMainResponses.fr.json (100%) rename solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/{Dialogs/Main/Resources => Responses/Main}/ToDoMainResponses.it.json (100%) rename solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/{Dialogs/Main/Resources => Responses/Main}/ToDoMainResponses.json (100%) rename solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/{Dialogs/Main/Resources => Responses/Main}/ToDoMainResponses.tt (58%) rename solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/{Dialogs/Main/Resources => Responses/Main}/ToDoMainResponses.zh.json (100%) rename solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/{Dialogs/MarkToDo/Resources => Responses/MarkToDo}/MarkToDoResponses.cs (95%) rename solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/{Dialogs/MarkToDo/Resources => Responses/MarkToDo}/MarkToDoResponses.de.json (100%) rename solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/{Dialogs/MarkToDo/Resources => Responses/MarkToDo}/MarkToDoResponses.es.json (100%) rename solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/{Dialogs/MarkToDo/Resources => Responses/MarkToDo}/MarkToDoResponses.fr.json (100%) rename solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/{Dialogs/MarkToDo/Resources => Responses/MarkToDo}/MarkToDoResponses.it.json (100%) rename solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/{Dialogs/MarkToDo/Resources => Responses/MarkToDo}/MarkToDoResponses.json (100%) rename solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/{Dialogs/MarkToDo/Resources => Responses/MarkToDo}/MarkToDoResponses.tt (58%) rename solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/{Dialogs/MarkToDo/Resources => Responses/MarkToDo}/MarkToDoResponses.zh.json (100%) rename solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/{Dialogs/Shared/Resources => Responses/Shared}/IconImageSource.cs (100%) rename solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/{Dialogs/Shared/Resources => Responses/Shared}/ResponseIdCollection.t4 (100%) rename solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/{Dialogs/Shared/Resources => Responses/Shared}/ToDoSharedResponses.cs (96%) rename solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/{Dialogs/Shared/Resources => Responses/Shared}/ToDoSharedResponses.de.json (100%) rename solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/{Dialogs/Shared/Resources => Responses/Shared}/ToDoSharedResponses.es.json (100%) rename solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/{Dialogs/Shared/Resources => Responses/Shared}/ToDoSharedResponses.fr.json (100%) rename solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/{Dialogs/Shared/Resources => Responses/Shared}/ToDoSharedResponses.it.json (100%) rename solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/{Dialogs/Shared/Resources => Responses/Shared}/ToDoSharedResponses.json (100%) rename solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/{Dialogs/Shared/Resources => Responses/Shared}/ToDoSharedResponses.tt (58%) rename solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/{Dialogs/Shared/Resources => Responses/Shared}/ToDoSharedResponses.zh.json (100%) rename solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/{Dialogs/Shared/Resources => Responses/Shared}/ToDoStrings.Designer.cs (97%) rename solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/{Dialogs/Shared/Resources => Responses/Shared}/ToDoStrings.de.resx (100%) rename solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/{Dialogs/Shared/Resources => Responses/Shared}/ToDoStrings.es.resx (100%) rename solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/{Dialogs/Shared/Resources => Responses/Shared}/ToDoStrings.fr.resx (100%) rename solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/{Dialogs/Shared/Resources => Responses/Shared}/ToDoStrings.it.resx (100%) rename solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/{Dialogs/Shared/Resources => Responses/Shared}/ToDoStrings.resx (100%) rename solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/{Dialogs/Shared/Resources => Responses/Shared}/ToDoStrings.zh.resx (100%) rename solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/{Dialogs/ShowToDo/Resources => Responses/ShowToDo}/ShowToDoResponses.cs (97%) rename solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/{Dialogs/ShowToDo/Resources => Responses/ShowToDo}/ShowToDoResponses.de.json (100%) rename solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/{Dialogs/ShowToDo/Resources => Responses/ShowToDo}/ShowToDoResponses.es.json (100%) rename solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/{Dialogs/ShowToDo/Resources => Responses/ShowToDo}/ShowToDoResponses.fr.json (100%) rename solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/{Dialogs/ShowToDo/Resources => Responses/ShowToDo}/ShowToDoResponses.it.json (100%) rename solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/{Dialogs/ShowToDo/Resources => Responses/ShowToDo}/ShowToDoResponses.json (100%) rename solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/{Dialogs/ShowToDo/Resources => Responses/ShowToDo}/ShowToDoResponses.tt (58%) rename solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/{Dialogs/ShowToDo/Resources => Responses/ShowToDo}/ShowToDoResponses.zh.json (100%) create mode 100644 solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Services/BotServices.cs create mode 100644 solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Services/BotSettings.cs rename solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/{ServiceClients => Services}/IMailService.cs (100%) rename solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/{ServiceClients => Services}/IServiceManager.cs (90%) rename solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/{ServiceClients => Services}/ITaskService.cs (100%) rename solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/{ServiceClients => Services}/MailService.cs (100%) rename solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/{ServiceClients => Services}/OneNoteService.cs (99%) rename solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/{ServiceClients => Services}/OutlookService.cs (99%) rename solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/{ServiceClients => Services}/ServiceHelper.cs (100%) rename solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/{ServiceClients => Services}/ServiceManager.cs (90%) rename solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/{Dialogs/Shared/Resources/ToDoLU.cs => Services/ToDoLuis.cs} (100%) delete mode 100644 solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/ToDoSkill.cs create mode 100644 solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/cognitivemodels.json create mode 100644 templates/Virtual-Assistant-Template/VirtualAssistantTemplate/Deployment/Scripts/DispatchLuis.cs rename templates/Virtual-Assistant-Template/VirtualAssistantTemplate/VirtualAssistantTemplate/Bots/{Adapter.cs => DefaultAdapter.cs} (82%) rename templates/Virtual-Assistant-Template/VirtualAssistantTemplate/VirtualAssistantTemplate/Bots/{Bot.cs => DefaultBot.cs} (93%) create mode 100644 templates/Virtual-Assistant-Template/VirtualAssistantTemplate/VirtualAssistantTemplate/Models/OAuthConnection.cs diff --git a/.gitignore b/.gitignore index 29b24e0de2..15eaf2f8d3 100644 --- a/.gitignore +++ b/.gitignore @@ -352,4 +352,5 @@ ASALocalRun/ **/Deployment/Resources/Dispatch/** **/Deployment/appsettings.json **/Deployment/cognitivemodels.json -**/Deployment/skills.json \ No newline at end of file +**/Deployment/skills.json +/templates/Virtual-Assistant-Template/VirtualAssistantTemplate/Deployment/Scripts/va_add_skill.1.ps1 diff --git a/lib/csharp/microsoft.bot.builder.skills/Microsoft.Bot.Builder.Skills.Tests/Microsoft.Bot.Builder.Skills.Tests.csproj b/lib/csharp/microsoft.bot.builder.skills/Microsoft.Bot.Builder.Skills.Tests/Microsoft.Bot.Builder.Skills.Tests.csproj index 4f8d37a930..5659ea5c64 100644 --- a/lib/csharp/microsoft.bot.builder.skills/Microsoft.Bot.Builder.Skills.Tests/Microsoft.Bot.Builder.Skills.Tests.csproj +++ b/lib/csharp/microsoft.bot.builder.skills/Microsoft.Bot.Builder.Skills.Tests/Microsoft.Bot.Builder.Skills.Tests.csproj @@ -7,7 +7,7 @@ - + diff --git a/solutions/Virtual-Assistant/src/csharp/experimental/skills/newsskill/NewsSkill.csproj b/solutions/Virtual-Assistant/src/csharp/experimental/skills/newsskill/NewsSkill.csproj index 7cac9f45ea..0c8be95afa 100644 --- a/solutions/Virtual-Assistant/src/csharp/experimental/skills/newsskill/NewsSkill.csproj +++ b/solutions/Virtual-Assistant/src/csharp/experimental/skills/newsskill/NewsSkill.csproj @@ -15,7 +15,7 @@ - + diff --git a/solutions/Virtual-Assistant/src/csharp/experimental/skills/restaurantbooking/RestaurantBooking.csproj b/solutions/Virtual-Assistant/src/csharp/experimental/skills/restaurantbooking/RestaurantBooking.csproj index fa273a7951..a3938727da 100644 --- a/solutions/Virtual-Assistant/src/csharp/experimental/skills/restaurantbooking/RestaurantBooking.csproj +++ b/solutions/Virtual-Assistant/src/csharp/experimental/skills/restaurantbooking/RestaurantBooking.csproj @@ -45,7 +45,7 @@ - + diff --git a/solutions/Virtual-Assistant/src/csharp/skills/automotiveskill/automotiveskill/AutomotiveSkill.csproj b/solutions/Virtual-Assistant/src/csharp/skills/automotiveskill/automotiveskill/AutomotiveSkill.csproj index 907d8e5158..5b48515b5a 100644 --- a/solutions/Virtual-Assistant/src/csharp/skills/automotiveskill/automotiveskill/AutomotiveSkill.csproj +++ b/solutions/Virtual-Assistant/src/csharp/skills/automotiveskill/automotiveskill/AutomotiveSkill.csproj @@ -19,7 +19,7 @@ - + diff --git a/solutions/Virtual-Assistant/src/csharp/skills/calendarskill/calendarskill/CalendarSkill.csproj b/solutions/Virtual-Assistant/src/csharp/skills/calendarskill/calendarskill/CalendarSkill.csproj index 4b6d793c6d..a2f3aa3055 100644 --- a/solutions/Virtual-Assistant/src/csharp/skills/calendarskill/calendarskill/CalendarSkill.csproj +++ b/solutions/Virtual-Assistant/src/csharp/skills/calendarskill/calendarskill/CalendarSkill.csproj @@ -24,7 +24,7 @@ - + diff --git a/solutions/Virtual-Assistant/src/csharp/skills/emailskill/emailskill/EmailSkill.csproj b/solutions/Virtual-Assistant/src/csharp/skills/emailskill/emailskill/EmailSkill.csproj index bd61395c68..a8bd998dbb 100644 --- a/solutions/Virtual-Assistant/src/csharp/skills/emailskill/emailskill/EmailSkill.csproj +++ b/solutions/Virtual-Assistant/src/csharp/skills/emailskill/emailskill/EmailSkill.csproj @@ -22,7 +22,7 @@ - + diff --git a/solutions/Virtual-Assistant/src/csharp/skills/pointofinterestskill/pointofinterestskill/PointOfInterestSkill.csproj b/solutions/Virtual-Assistant/src/csharp/skills/pointofinterestskill/pointofinterestskill/PointOfInterestSkill.csproj index f03a38189e..5f7393e12f 100644 --- a/solutions/Virtual-Assistant/src/csharp/skills/pointofinterestskill/pointofinterestskill/PointOfInterestSkill.csproj +++ b/solutions/Virtual-Assistant/src/csharp/skills/pointofinterestskill/pointofinterestskill/PointOfInterestSkill.csproj @@ -19,7 +19,7 @@ - + diff --git a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Adapters/DefaultAdapter.cs b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Adapters/DefaultAdapter.cs new file mode 100644 index 0000000000..fdc39a55dd --- /dev/null +++ b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Adapters/DefaultAdapter.cs @@ -0,0 +1,44 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +using System.Globalization; +using Microsoft.Bot.Builder; +using Microsoft.Bot.Builder.Azure; +using Microsoft.Bot.Builder.Integration.AspNet.Core; +using Microsoft.Bot.Builder.Solutions.Middleware; +using Microsoft.Bot.Builder.Solutions.Responses; +using Microsoft.Bot.Builder.Solutions.Telemetry; +using Microsoft.Bot.Connector.Authentication; +using Microsoft.Bot.Schema; +using ToDoSkill.Responses.Shared; +using ToDoSkill.Services; + +namespace ToDoSkill.Adapters +{ + public class DefaultAdapter : BotFrameworkHttpAdapter + { + public DefaultAdapter( + BotSettings settings, + ICredentialProvider credentialProvider, + BotStateSet botStateSet, + IBotTelemetryClient telemetryClient, + ResponseManager responseManager) + : base(credentialProvider) + { + OnTurnError = async (context, exception) => + { + CultureInfo.CurrentUICulture = new CultureInfo(context.Activity.Locale); + await context.SendActivityAsync(responseManager.GetResponse(ToDoSharedResponses.ToDoErrorMessage)); + await context.SendActivityAsync(new Activity(type: ActivityTypes.Trace, text: $"To Do Skill Error: {exception.Message} | {exception.StackTrace}")); + telemetryClient.TrackExceptionEx(exception, context.Activity); + }; + + Use(new TranscriptLoggerMiddleware(new AzureBlobTranscriptStore(settings.BlobStorage.ConnectionString, settings.BlobStorage.Container))); + Use(new TelemetryLoggerMiddleware(telemetryClient, logPersonalInformation: true)); + Use(new ShowTypingMiddleware()); + Use(new SetLocaleMiddleware(settings.DefaultLocale ?? "en-us")); + Use(new EventDebuggerMiddleware()); + Use(new AutoSaveStateMiddleware(botStateSet)); + } + } +} diff --git a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Adapters/ToDoSkillAdapter.cs b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Adapters/ToDoSkillAdapter.cs new file mode 100644 index 0000000000..a54658f774 --- /dev/null +++ b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Adapters/ToDoSkillAdapter.cs @@ -0,0 +1,42 @@ +using System.Globalization; +using Microsoft.Bot.Builder; +using Microsoft.Bot.Builder.Azure; +using Microsoft.Bot.Builder.Skills; +using Microsoft.Bot.Builder.Solutions.Middleware; +using Microsoft.Bot.Builder.Solutions.Responses; +using Microsoft.Bot.Builder.Solutions.Telemetry; +using Microsoft.Bot.Connector.Authentication; +using Microsoft.Bot.Schema; +using ToDoSkill.Responses.Shared; +using ToDoSkill.Services; + +namespace ToDoSkill.Adapters +{ + public class ToDoSkillAdapter : SkillAdapter + { + public ToDoSkillAdapter( + BotSettings settings, + ICredentialProvider credentialProvider, + UserState userState, + ConversationState conversationState, + ResponseManager responseManager, + IBotTelemetryClient telemetryClient) + : base(credentialProvider) + { + OnTurnError = async (context, exception) => + { + CultureInfo.CurrentUICulture = new CultureInfo(context.Activity.Locale); + await context.SendActivityAsync(responseManager.GetResponse(ToDoSharedResponses.ToDoErrorMessage)); + await context.SendActivityAsync(new Activity(type: ActivityTypes.Trace, text: $"To Do Skill Error: {exception.Message} | {exception.StackTrace}")); + telemetryClient.TrackExceptionEx(exception, context.Activity); + }; + + Use(new TranscriptLoggerMiddleware(new AzureBlobTranscriptStore(settings.BlobStorage.ConnectionString, settings.BlobStorage.Container))); + Use(new TelemetryLoggerMiddleware(telemetryClient, logPersonalInformation: true)); + Use(new ShowTypingMiddleware()); + Use(new SetLocaleMiddleware(settings.DefaultLocale ?? "en-us")); + Use(new EventDebuggerMiddleware()); + Use(new AutoSaveStateMiddleware(userState, conversationState)); + } + } +} diff --git a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Bots/DefaultBot.cs b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Bots/DefaultBot.cs new file mode 100644 index 0000000000..988ae56917 --- /dev/null +++ b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Bots/DefaultBot.cs @@ -0,0 +1,55 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +using System; +using System.Threading; +using System.Threading.Tasks; +using Microsoft.Bot.Builder; +using Microsoft.Bot.Builder.Dialogs; +using Microsoft.Bot.Schema; +using Microsoft.Extensions.DependencyInjection; +using ToDoSkill.Dialogs; +using ToDoSkill.Services; + +namespace ToDoSkill +{ + public class DefaultBot : ActivityHandler + where T : Dialog + { + private readonly IBotTelemetryClient _telemetryClient; + private DialogSet _dialogs; + + public DefaultBot(IServiceProvider serviceProvider, T dialog) + { + var services = serviceProvider.GetService() ?? throw new ArgumentNullException(nameof(BotServices)); + var conversationState = serviceProvider.GetService() ?? throw new ArgumentNullException(nameof(ConversationState)); + var userState = serviceProvider.GetService() ?? throw new ArgumentNullException(nameof(UserState)); + _telemetryClient = serviceProvider.GetService() ?? throw new ArgumentNullException(nameof(IBotTelemetryClient)); + + var dialogState = conversationState.CreateProperty(nameof(ToDoSkill)); + _dialogs = new DialogSet(dialogState); + _dialogs.Add(dialog); + } + + public override async Task OnTurnAsync(ITurnContext turnContext, CancellationToken cancellationToken) + { + // Client notifying this bot took to long to respond (timed out) + if (turnContext.Activity.Code == EndOfConversationCodes.BotTimedOut) + { + _telemetryClient.TrackTrace($"Timeout in {turnContext.Activity.ChannelId} channel: Bot took too long to respond.", Severity.Information, null); + return; + } + + var dc = await _dialogs.CreateContextAsync(turnContext); + + if (dc.ActiveDialog != null) + { + var result = await dc.ContinueDialogAsync(); + } + else + { + await dc.BeginDialogAsync(typeof(T).Name); + } + } + } +} \ No newline at end of file diff --git a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/CognitiveModels/LUIS/de/todo.lu b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/CognitiveModels/LUIS/de/todo.lu deleted file mode 100644 index 9e7fb5ec41..0000000000 --- a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/CognitiveModels/LUIS/de/todo.lu +++ /dev/null @@ -1,595 +0,0 @@ -> ! Automatically generated by [LUDown CLI](https://github.com/Microsoft/botbuilder-tools/tree/master/Ludown), Tue Feb 26 2019 14:04:06 GMT+0800 (China Standard Time) - -> ! Source LUIS JSON file: todo.json - -> ! Source QnA TSV file: Not Specified - -> ! Source QnA Alterations file: Not Specified - - -> # Intent definitions - -## AddToDo -- Fügen Sie ein paar Artikel zu der {ListType=Lebensmittelgeschäft} Liste -- Fügen Sie eine {ListType=Lebensmittelgeschäft} Artikel zu {TaskContentML=Fisch kaufen} -- Fügen Sie eine {ListType=Lebensmittelgeschäft} Artikel zu {TaskContentML=Obst und Gemüse kaufen} -- Fügen Sie eine {ListType=Lebensmittelgeschäft} Artikel zu {TaskContentML=Gemüse kaufen} -- Ein neues {ListType=Einkaufen} Liste -- Fügen Sie eine {ListType=Einkaufen} Artikel zu {TaskContentML=Tanzkleider kaufen} -- Fügen Sie eine {ListType=Einkaufen} Artikel zu {TaskContentML=Orangensaft kaufen} -- Eine Aufgabe für {TaskContentML=anna West bring meinen Badeanzug für meinen Urlaub} -- Eine Aufgabe für {TaskContentML=Jimmy, um xbox-Spiele mit mir nach der Arbeit zu spielen} -- Eine Aufgabe für {TaskContentML=li lei, um meinen Mantel von zu Hause zu holen} -- Eine Aufgabe für {TaskContentML=Raghu, um meine Pralinen aus Deutschland zu bringen} -- Eine Aufgabe hinzufügen {TaskContentML=Pasta Sonntag 3. März} -- Fügen Sie eine Aufgabe, die {TaskContentML=Obst und Gemüse kaufen} -- Eine Aufgabe hinzufügen {TaskContentML=Fahrprüfung in dieser Woche beendet} -- Eine Aufgabe hinzufügen {TaskContentML=Abholung nach der Arbeit} -- Eine Aufgabe hinzufügen {TaskContentML=Shop bei gnc nach der Arbeit} -- Fügen Sie eine {ListType=zu tun} das {TaskContentML=Kaufen Sie einen schönen Pullover} -- Fügen Sie eine {ListType=zu tun} An {TaskContentML=Schuhe kaufen} -- Fügen Sie eine {ListType=Alle} Artikel {TaskContentML=Staubsaugen bis 3. Oktober} -- Aktionsstück hinzufügen {TaskContentML=khalifa, das meine Schulvorräte verpackt} In meiner Liste -- Fügen Sie einen Artikel hinzu {TaskContentML=Kaufen Sie Snacks} -- Fügen Sie eine Aufgabe von {TaskContentML=Aufgaben rund um das Haus} -- Hinzufügen {TaskContentML=Bronwnies} zum {ListType=Lebensmittelgeschäft} Liste -- Hinzufügen {TaskContentML=Kaugummi kaufen} -- Hinzufügen {TaskContentML=Milch kaufen} Meiner {ListType=Einkaufen} Liste -- Hinzufügen {TaskContentML=Meine Mutter anrufen} Meiner {ListType=Alle} Liste -- Hinzufügen {TaskContentML=Fälligkeitsdatum August auf Erdnussbutter Gelee-Milch} Auf {ListType=Alle} Liste -- Hinzufügen {TaskContentML=Laufen} Meiner {ListType=to dos} -- Hinzufügen {TaskContentML=Gehen Sie zu ganzen Lebensmitteln} In meinem {ListType=zu tun} Liste -- Hinzufügen {ListType=Lebensmittelgeschäft} Hinzufügen {TaskContentML=Spinat} Meine {ListType=Lebensmittel} Liste -- Hinzufügen {ListType=Lebensmittelgeschäft} Artikel {TaskContentML=Frischkäse und Rosinen} Zur Liste -- Hinzufügen {ListType=Lebensmittelgeschäft} Artikel {TaskContentML=Abendessen und Aufbewahrungstasche} zum {ListType=Einkaufen} Liste -- Hinzufügen {TaskContentML=Haben einen Haarschnitt} Zu meinen Aufgaben -- Fügen Sie Artikel hinzu, während ich spreche -- Hinzufügen {TaskContentML=Juicer} {ListType=Lebensmittel} Liste -- Hinzufügen {TaskContentML=Melone und Zucker und brauner Zucker} An {ListType=Einkaufen} Liste -- Mehr dazu {ListType=Lebensmittelgeschäft} Liste -- Hinzufügen {TaskContentML=Erdnüsse} das {ListType=Lebensmittelgeschäft} Liste -- Hinzufügen {TaskContentML=Kauf eines Kinoktickets} Auf meine Liste -- Hinzufügen {TaskContentML=Einkauf von Speisen und Getränken} Meiner {ListType=Einkaufen} Liste -- Hinzufügen {TaskContentML=Lesen} Meiner {ListType=zu tun} Liste -- Hinzufügen {TaskContentML=Schuhe} zum {ListType=Einkaufen} Listen -- Fügen Sie einige Artikel hinzu {ListType=Einkaufen} Notizen -- Fügen Sie einige Elemente zu der {ListType=Lebensmittelgeschäft} Liste -- Fügen Sie einige hinzu {TaskContentML=Jeans} Auf unserer {ListType=Einkaufen} Listen -- Etwas hinzufügen {ListType=Lebensmittelgeschäft} Liste -- Etwas zu meiner Liste hinzufügen -- Hinzufügen {TaskContentML=Tapioka-Stärke} Auf meiner {ListType=Einkaufen} Liste -- Hinzufügen {TaskContentML=Tapioka-Stärke} Auf unserer {ListType=Einkaufen} Liste -- Aufgabe hinzufügen {TaskContentML=Mantel kaufen} -- Aufgabe hinzufügen {TaskContentML=Einrichtung Esstisch} -- Fügen Sie dies hinzu {TaskContentML=Meine Ziele für 2017} In meiner Liste -- Fügen Sie dies auf unsere {ListType=Einkaufen} Liste -- Fügen Sie diese Sachen auf meine {ListType=Einkaufen} Liste -- Fügen Sie dieses Ding in {ListType=zu tun} Liste -- Fügen Sie meiner {ListType=Lebensmittelgeschäft} Liste -- Fügen Sie meiner {ListType=zu tun} Liste {TaskContentML=Abholung von Kleidung} -- Fügen Sie meiner {ListType=zu tun} Liste {TaskContentML=Druckerpapiere für 10 Exemplare heute Nachmittag} -- Fügen Sie meiner {ListType=Alle} Liste {TaskContentML=E-Mail der Versicherungsformulare bis Samstag} -- Zur Notiz hinzufügen {ListType=Einkaufen} Liste -- Fügen Sie hinzu, {ListType=Einkaufen} Liste -- Zum {ListType=Lebensmittelgeschäft} Hinweis {TaskContentML=Milch kaufen} -- Ein {TaskContentML=Sommerlektüre} In meiner Liste -- Ein {TaskContentML=Gast lädt zur Party ein} -- Eine Aufgabe fragen {TaskContentML=Kim, meinen Mantel von zu Hause zu holen} -- Kann ich hinzufügen {TaskContentML=Shirts} Auf der {ListType=Alle} Liste -- Kann ich anziehen {TaskContentML=Karamellkäse Popcorn} Auf meiner {ListType=Lebensmittelgeschäft} Liste -- Könnte ich hinzufügen {TaskContentML=Medizin} zum {ListType=Alle} Liste -- Eine Aufgabe zu schaffen {TaskContentML=Meine Freunde treffen} -- Aufgabe schaffen, die {TaskContentML=Zum Einkaufszentrum} -- Aufgabe schaffen, die {TaskContentML=Treffen john nach 5:00 Uhr} -- Aufgabe zu schaffen {TaskContentML=Cyber-Shopping auf nov. 11} -- Dafür schaffen {TaskContentML=Lesen Sie ein Buch heute Abend} -- erschaffen, um zu tun {TaskContentML=Laufen im Park} -- put {TaskContentML=Käse} Auf der Liste -- put {TaskContentML=Ihn} Auf meiner {ListType=Einkaufen} Liste -- put {TaskContentML=Wanderungen} Auf meiner {ListType=zu tun} Liste -- put {TaskContentML=Eis} Auf der {ListType=Lebensmittel} Liste -- put {TaskContentML=Milch} Auf meiner {ListType=Lebensmittelgeschäft} Liste -- put {TaskContentML=Auf Karamellkäse Popcorn} Auf meiner {ListType=Lebensmitteleinkäufe} Liste -- Ich erinnere mich daran, dass {TaskContentML=Morgen an der Sitzung teilnehmen} -- Ich erinnere mich an {TaskContentML=Erste-Hilfe-Cremes und Beeren kaufen} -- Ich erinnere mich an {TaskContentML=Milch kaufen} -- Ich erinnere mich an {TaskContentML=Treffen Sie meinen Lehrer} -- Erinnern Sie mich an einkaufen für {TaskContentML=Ein neuer Teppich} -- An {ListType=Lebensmittelgeschäft} Liste hinzufügen {TaskContentML=Milch} -- Meiner {ListType=Einkaufen} Liste hinzufügen {TaskContentML=Papiertücher} -- In meinen Urlaub {ListType=zu tun} Liste hinzufügen {TaskContentML=Sonnenblöcke kaufen} -- Würden Sie hinzufügen {TaskContentML=Schwere Creme} zum {ListType=Alle} Liste -- Eine Aufgabe hinzufügen {TaskContentPattern} -- erschaffen, um zu tun {TaskContentPattern} -- Ich erinnere mich daran, dass {TaskContentPattern} -- Eine Aufgabe zu schaffen {TaskContentPattern} -- Dazu noch etwas {TaskContentPattern} -- Erinnern Sie mich an Kauf {ShopContent} -- Ein zu tun {TaskContentPattern} -- Hinzufügen {TaskContentPattern} Auf meine Lebensmittelliste -- Fügen Sie einen zu diesem Kauf {ShopContent} -- Hinzufügen kaufen {ShopContent} Auf meine Lebensmittelliste -- Erinnern Sie mich zu kaufen {ShopContent} -- Erinnern Sie mich an einkaufen {ShopContent} -- Ich erinnere mich an {TaskContentPattern} -- Hinzufügen kaufen {ShopContent} Auf meine Einkaufsliste -- Fügen Sie einen, um diesen Shop zu tun {ShopContent} -- Hinzufügen {TaskContentPattern} Meinem to dos -- Aufgabe hinzufügen {TaskContentPattern} -- Fügen Sie eine Aufgabe, dass Shop {ShopContent} -- Hinzufügen {TaskContentPattern} Auf meine Todo-Liste -- Aufgabe zu schaffen {TaskContentPattern} -- Hinzufügen {TaskContentPattern} Zu meinen Aufgaben -- Dazu {TaskContentPattern} -- Fügen Sie ein zu tun, dass kaufen {ShopContent} -- Fügen Sie eine Aufgabe, die kaufen {ShopContent} -- Fügen Sie eine Aufgabe zum Einkaufen {ShopContent} -- Fügen Sie eine Aufgabe, die Kauf {ShopContent} -- Hinzufügen {TaskContentPattern} Auf meine zu tun Liste - - -## DeleteToDo -- Können Sie löschen {TaskContentML=Todo1} -- Können Sie löschen {TaskContentML=Xxx} Artikel -- Können Sie helfen, zu entfernen {ContainsAll=Alle} Aufgaben -- Abbrechen {TaskContentML=Äpfel} Von {ListType=Einkaufen} Liste -- Löschen {ContainsAll=Alle} Von meiner {ListType=Lebensmittelgeschäft} Liste -- Löschen {TaskContentML=Eier} Aus der Liste -- Löschen {TaskContentML=Pfannkuchen-Mix} Auf der {ListType=Einkaufen} Liste -- Löschen {TaskContentML=Shampoo} Von {ListType=Einkaufen} Liste -- Löschen {TaskContentML=Shirts} Aus der Liste -- Aufgabe löschen {TaskContentML=Gehen Sie angeln} -- Aufgabe löschen {TaskContentML=Heute Abend ins Kino gehen} -- Löschen Sie den Artikel {TaskContentML=Socken kaufen} Von meiner {ListType=To-do} Liste -- Löschen Sie die zweite Aufgabe in meinem {ListType=Einkaufen} Liste -- Die Aufgabe löschen {TaskContentML=Hausreinigung an diesem Wochenende} -- Die Aufgabe löschen, die {TaskContentML=Jeden Morgen ins Fitnessstudio} -- Die löschen {TaskContentML=Morgen mit meinen Freunden zusammentreffen} -- Löschen Sie das {TaskContentML=Tägliches Übungsplavium} -- Löschen Sie das {TaskContentML=Treffen john, wenn er am nächsten Freitag hierher kommt} -- Löschen zu tun {TaskContentML=Milch kaufen} -- Löschen zu tun {TaskContentML=Einkaufen gehen} -- Löschen, um das zu tun {TaskContentML=Morgen wandern gehen} -- Löschen {TaskContentML=Bananen} Von {ListType=Einkaufen} Liste -- Löschen {TaskContentML=Erdnüsse} Auf der {ListType=Einkaufen} Liste -- Keine Notwendigkeit, {TaskContentML=Milch kaufen} In {ListType=Lebensmittelgeschäft} Liste -- Auslassen der {TaskContentML=Milch} Im {ListType=Lebensmittelgeschäft} Liste -- Entfernen {ContainsAll=Alle} -- Entfernen {ContainsAll=Alle} Aufgaben -- Entfernen {TaskContentML=Asprin} Von {ListType=Einkaufen} Liste -- Entfernen {TaskContentML=Schwarze Schuhe} Von {ListType=Einkaufen} Liste -- Entfernen {TaskContentML=Klasse} Von {ListType=Alle} Liste -- Entfernen {TaskContentML=Salatgemüse} Von {ListType=Lebensmittelgeschäft} Liste -- Aufgabe entfernen {TaskContentML=Hundefutter kaufen} -- Aufgabe entfernen {TaskContentML=Einkaufen gehen} -- Aufgabe, die {TaskContentML=Wandern gehen an diesem Wochenende} -- Aufgabe, die {TaskContentML=Rasenmähen} -- Artikel entfernen {TaskContentML=Paris} Aus meiner Liste -- Entfernen Sie die Aufgabe, die {TaskContentML=Nach der Arbeit in die Bibliothek gehen} -- Entfernen Sie die zu tun {TaskContentML=Körperliche Untersuchung} -- Entfernen Sie die, um das zu tun {TaskContentML=Um sechs Uhr Abholung} -- Entfernen {TaskContentML=Gehen Sie ins Fitnessstudio} -- Entfernen, um das zu tun {TaskContentML=Morgen früh zum Zahnarzt gehen} -- {ListType=Einkaufen} Liste löschen {TaskContentML=Eine} -- {ListType=Einkaufen} Liste löschen {TaskContentML=Hundefutter} -- {ListType=Einkaufen} Liste löschen {TaskContentML=Eier} -- {ListType=Einkaufen} Liste löschen {TaskContentML=Milch} -- Nehmen {TaskContentML=Kaffee} Aus meiner {ListType=Lebensmittel} Liste -- Nehmen {TaskContentML=Zitronen und Zwiebeln} Aus meiner {ListType=Einkaufen} Liste -- Nehmen {TaskContentML=Milch} Aus {ListType=Lebensmittelgeschäft} Liste -- Nehmen {TaskContentML=Socken und Schuhe} Aus meiner {ListType=Einkaufen} Liste -- {ListType=Alle} Liste löschen {TaskContentML=paris Urlaub} -- Entfernen {TaskContentPattern} -- Löschen Sie das {TaskContentPattern} -- Aufgabe löschen {TaskContentPattern} -- Die Aufgabe entfernen {TaskContentPattern} -- Entfernen Sie die zu tun {TaskContentPattern} -- Die löschen {TaskContentPattern} -- Löschen zu tun {TaskContentPattern} -- Die Aufgabe löschen {TaskContentPattern} - - -## MarkToDo -- {ContainsAll=Alle} Es wurden -- {ContainsAll=Alle} Im {ListType=Einkaufen} Liste -- Bereits vollendet {ListType=Einkaufen} Einträge in der Liste -- Check-off {TaskContentML=Äpfel} Aus der Liste -- Check-off {TaskContentML=Bananen} Von meiner {ListType=Lebensmittelgeschäft} Liste -- Check-off {TaskContentML=Garbage} Von {ListType=Einkaufsmöglichkeit} Liste -- Check-off {TaskContentML=Treffen john um 8 Uhr} Von {ListType=zu tun} Liste -- Check-off {TaskContentML=Shampoo} Von {ListType=Einkaufen} Liste wie möglich -- Kästchen prüfen {TaskContentML=Shampoo} In meinem {ListType=Einkaufen} Liste -- vollständig {ContainsAll=Alle} -- vollständig {TaskContentML=Schwarze Schuhe abholen} In meinem {ListType=To-do} Liste -- Komplettaufgabe {TaskContentML=Einkaufen gehen} -- Mit der Aufgabe erledigt {TaskContentML=Abc} In unserem {ListType=Einkaufen} Liste -- Mit der Aufgabe erledigt {TaskContentML=Shopping-a} -- Mit der Aufgabe erledigt {TaskContentML=Tapioka-Stärke} In unserem {ListType=Einkaufen} Liste -- Beenden {TaskContentML=Wanderungen} Auf meiner {ListType=zu tun} Liste -- Beenden {TaskContentML=Erdnüsse} Auf der {ListType=Einkaufen} Liste -- Lassen Sie mich die {ListType=Lebensmittel} Liste -- Mark {TaskContentML=Fisch kaufen} Wie abgeschlossen -- Mark {TaskContentML=Fisch} Als vollständig -- Mark {TaskContentML=Glücklich} Auf {ListType=to dos} Liste -- Mark {TaskContentML=Zitronen und Zwiebeln} In {ListType=Lebensmittelgeschäft} Liste -- Mark {TaskContentML=Fleisch} vollständig -- Mark {TaskContentML=Fleisch} Abgeschlossen -- Mark {TaskContentML=Fleisch} fertig -- Mark {TaskContentML=Fleisch} Fertig -- Mark {TaskContentML=Pfannkuchen-Mix} Auf meiner {ListType=Lebensmitteleinkäufe} Liste -- Mark {TaskContentML=Erdnüsse} Auf meiner {ListType=Lebensmittelgeschäft} Liste wie möglich -- Mark {TaskContentML=Erdnüsse} Auf meiner {ListType=Lebensmittelgeschäft} {ListType=Einkaufen} Liste -- Mark {TaskContentML=Abholung} Wie fertig -- Mark {TaskContentML=Milch abholen} Auf meiner {ListType=To-do} Liste -- Mark {TaskContentML=Badminton mit Tom spielen} Wie fertig -- Mark {TaskContentML=Salat} Auf meiner {ListType=Lebensmittelgeschäft} {ListType=Einkaufen} Liste -- Mark {TaskContentML=Salat} Auf der {ListType=Lebensmittel} Liste -- Aufgabe markieren {TaskContentML=Eine Flasche Essig kaufen} Wie fertig -- Aufgabe markieren {TaskContentML=Laufen} Wie fertig -- Aufgabe markieren {TaskContentML=Lesen Sie ein Buch} Wie erledigt -- Die erste Aufgabe als abgeschlossen markieren -- Die Sache markieren {TaskContentML=Garbage} Von {ListType=Einkaufsmöglichkeit} Liste -- Die Aufgabe markieren {TaskContentML=Milch kaufen} Wie erledigt -- Die Aufgabe markieren {TaskContentML=Essen bekommen} Als vollständig -- Die Aufgabe markieren {ListType=Einkaufen} Wie fertig -- Die Aufgabe markieren {TaskContentML=Reservieren Sie ein Restaurant für das morgige Abendessen} Wie fertig -- Die Aufgabe markieren {TaskContentML=Meine Oma besuchen} Wie abgeschlossen -- Setzen Sie die {ListType=Lebensmittelgeschäft} Liste wie fertig -- Setzen Sie den Artikel als fertig -- {ListType=Einkaufen} Liste abgeschlossen -- {ListType=Einkaufen} Liste gerade fertig -- Aufgabe {TaskContentML=Abx-d} Es wurde getan -- Aufgabe abgeschlossen {TaskContentML=Kaugummi kaufen} -- 3. Aufgabe beendet -- Komplettaufgabe {TaskContentPattern} -- Die Aufgabe markieren {TaskContentPattern} Wie abgeschlossen -- Mark {TaskContentPattern} Wie fertig -- Aufgabe abgeschlossen {TaskContentPattern} -- Aufgabe markieren {TaskContentPattern} Wie fertig -- Die Aufgabe markieren {TaskContentPattern} Wie fertig - - -## None - - -## ShowNextPage -- Gibt es weitere Aufgaben -- Können Sie die nächste Seite in der {ListType=Einkaufen} Liste -- Die nächste Seite anzeigen -- Mehr Aufgaben zeigen -- Mehr Arbeit zeigen -- Nächste Seite anzeigen -- Nächstes Blatt anzeigen -- Nächste Website anzeigen -- Mehr Aufgaben erzählen - - -## ShowPreviousPage -- Anzeige der vorherigen Seite -- Ich muss frühere Aufgaben überprüfen -- Vorige Seite anzeigen - - -## ShowToDo -- Zugang zu meiner {ListType=Einkaufen} Liste -- Zugang zu meiner {ListType=zu tun} Liste -- Zugriff auf die {ListType=Lebensmittel} Liste -- {ContainsAll=Alle} {ListType=Einkaufen} Liste -- Aufbringen {ListType=Lebensmittelgeschäft} Notizen -- Aufbringen {ListType=Einkaufen} Hinweis -- Durchsuchen Sie meine {ListType=Lebensmittel} -- Können Sie meine zeigen {ListType=zu tun} Liste -- Überprüfen Sie meine Aufgabenliste -- Schaut ich an, meine {ListType=zu tun} Liste -- Anzeigen {ContainsAll=Alle} Notizen aus dem letzten Monat -- Anzeigen {ListType=Lebensmittel} Liste -- Anzeige Notizen mit {ListType=Lebensmittel} -- Anzeigen {ListType=Einkaufen} Liste -- Anzeige der Aufgaben -- Anzeigen {ListType=Alle} Liste -- Ich habe eine Liste mit dem Namen {ListType=Lebensmittelgeschäft} Liste -- Ich habe Listen -- Liste über {ListType=Einkaufen} -- Finden Sie meine {ListType=Lebensmittelgeschäft} Artikel, die ich am Samstag gespeichert habe -- Finden Sie meine {ListType=Einkaufen} Liste -- Hinweise beschriftet {ListType=Lebensmittelgeschäft} -- Hinweise finden {ListType=Lebensmittelgeschäft} -- Hinweise für {ListType=Lebensmittelgeschäft} {ListType=Einkaufen} -- Hinweise mit {ListType=Lebensmittel} -- Finden {ListType=Einkaufen} -- Task-Liste finden {ListType=Einkaufen} -- Finden Sie die Liste, die ich für {ListType=Einkaufen} -- Finden Sie die {ListType=Aufstellung} für mich -- Werkstücke auf meiner {ListType=Alle} Liste -- Hilfe beim Zugriff auf meine persönliche Liste -- Helfen Sie, meine {ListType=zu tun} Liste -- Ich muss meine Aufgaben sehen -- Ich muss die sehen {ListType=Lebensmittelgeschäft} Liste, die ich heute erstellt habe -- Ich möchte meine {ListType=Einkaufen} Liste -- Ich will sehen {ListType=Lebensmittelgeschäft} Liste -- Es gibt etwas auf meinem {ListType=zu tun} Liste -- Liste {ListType=Lebensmittelgeschäft} Notizen -- Schauen Sie sich meine {ListType=Lebensmittelgeschäft} Liste -- Ziehen {ListType=Lebensmittelgeschäft} Liste -- Aufziehen {ListType=Einkaufsmöglichkeit} Liste -- Aufziehen {ListType=Lebensmittelgeschäft} Liste -- Ziehen Sie meine {ListType=Lebensmittelgeschäft} Liste -- Ziehen Sie meine Noten hoch -- Aufziehen {ListType=zu tun} Liste -- Vorlesen Sie laut meine {ListType=Lebensmittelgeschäft} Liste -- Meine Aufgaben vorlesen -- Bewertung {ListType=Lebensmittelgeschäft} Liste -- {ListType=Einkaufen} Liste -- Demo {ContainsAll=Alle} Aufgaben -- Zeigen Sie meine {ListType=zu tun} Liste -- Zeigen Sie meine {ListType=to dos} -- Zeigen Sie meine {ListType=Alle} -- Blick meine {ListType=Lebensmittelgeschäft} Liste -- ansehen {ListType=Einkaufen} Liste -- Wie wäre es mit {ListType=Lebensmittelgeschäft} Liste -- Was sind meine Notizen für die {ListType=Lebensmittelgeschäft} abspeichern -- Wofür sind meine Aufgaben {ListType=Alle} -- Was muss ich auf der {ListType=Einkaufen} Liste -- Was muss ich in der {ListType=Einkaufen} Liste -- Was ist auf meinem {ListType=Einkaufen} Liste -- Wo ist das {ListType=Lebensmittelgeschäft} {ListType=Einkaufen} Notizen, an denen ich letzte Nacht gearbeitet habe -- Würdest du mein neues {ListType=Lebensmittelgeschäft} Notizen - - -> # Entity definitions - -$ContainsAll:simple - -$ListType:simple - -$TaskContentML:simple - - -> # PREBUILT Entity definitions - -$PREBUILT:number - -$PREBUILT:ordinal - - -> # Phrase list definitions - - -> # List entities - -$FoodOfGrocery:air freshener= - -$FoodOfGrocery:apple= -- Äpfel - -$FoodOfGrocery:bacon= - -$FoodOfGrocery:bagel= - -$FoodOfGrocery:bagels= - -$FoodOfGrocery:banana= -- Bananen - -$FoodOfGrocery:beans= - -$FoodOfGrocery:beverages= - -$FoodOfGrocery:bread= - -$FoodOfGrocery:buns= - -$FoodOfGrocery:burgers= - -$FoodOfGrocery:butter= - -$FoodOfGrocery:carrot= -- Karotten - -$FoodOfGrocery:celery= - -$FoodOfGrocery:cereal= - -$FoodOfGrocery:cheese= - -$FoodOfGrocery:chicken= - -$FoodOfGrocery:chili= - -$FoodOfGrocery:chips= - -$FoodOfGrocery:chocolate= -- Schokolade - -$FoodOfGrocery:chocolate chip= -- Schokoladenchips - -$FoodOfGrocery:chops= - -$FoodOfGrocery:cloves= - -$FoodOfGrocery:coffee= - -$FoodOfGrocery:corn= - -$FoodOfGrocery:crispy= - -$FoodOfGrocery:croissant= -- Croissants - -$FoodOfGrocery:cupcakes= - -$FoodOfGrocery:dairy= - -$FoodOfGrocery:dishwashing detergent= - -$FoodOfGrocery:donuts= - -$FoodOfGrocery:drinks= - -$FoodOfGrocery:duck= - -$FoodOfGrocery:egg= -- Eier - -$FoodOfGrocery:flour= - -$FoodOfGrocery:fries= - -$FoodOfGrocery:frozen food= - -$FoodOfGrocery:fruit= -- Früchte - -$FoodOfGrocery:garbage bag= -- Müllsäcke - -$FoodOfGrocery:garlic= - -$FoodOfGrocery:grilled= - -$FoodOfGrocery:ham= - -$FoodOfGrocery:hamburger= - -$FoodOfGrocery:ice cream= - -$FoodOfGrocery:jam= - -$FoodOfGrocery:lamb= - -$FoodOfGrocery:laundry detergent= - -$FoodOfGrocery:lemon= -- Zitronen - -$FoodOfGrocery:lettuce= - -$FoodOfGrocery:lettuce and salad= -- Salat -- Salate - -$FoodOfGrocery:lobster= - -$FoodOfGrocery:marinated= - -$FoodOfGrocery:meat= - -$FoodOfGrocery:meatballs= - -$FoodOfGrocery:meatloaf= - -$FoodOfGrocery:milk= - -$FoodOfGrocery:onion= -- Zwiebeln - -$FoodOfGrocery:oysters= - -$FoodOfGrocery:pancake mix= - -$FoodOfGrocery:pancakes= - -$FoodOfGrocery:pasta= - -$FoodOfGrocery:pastry= -- Gebäck - -$FoodOfGrocery:pear= -- Birnen - -$FoodOfGrocery:pepper= - -$FoodOfGrocery:pie= -- Füße - -$FoodOfGrocery:pita= - -$FoodOfGrocery:potato= -- Kartoffeln - -$FoodOfGrocery:poultry= - -$FoodOfGrocery:ribs= - -$FoodOfGrocery:rice= - -$FoodOfGrocery:roast= - -$FoodOfGrocery:rolls= - -$FoodOfGrocery:salads= - -$FoodOfGrocery:salmon= - -$FoodOfGrocery:salt= - -$FoodOfGrocery:sandwich= - -$FoodOfGrocery:sauce= - -$FoodOfGrocery:sausage= -- Würstchen - -$FoodOfGrocery:scones= - -$FoodOfGrocery:shellfish= - -$FoodOfGrocery:shrimp= - -$FoodOfGrocery:snacks= - -$FoodOfGrocery:sour cream= - -$FoodOfGrocery:steak= - -$FoodOfGrocery:strawberries= - -$FoodOfGrocery:sugar= - -$FoodOfGrocery:sushi= - -$FoodOfGrocery:sweets= - -$FoodOfGrocery:tenderloin= - -$FoodOfGrocery:tomato= -- Tomaten - -$FoodOfGrocery:toothpaste= - -$FoodOfGrocery:tortilla= - -$FoodOfGrocery:tuna= - -$FoodOfGrocery:turkey= - -$FoodOfGrocery:veal= - -$FoodOfGrocery:vegetable= -- Gemüse - -$FoodOfGrocery:venison= - -$FoodOfGrocery:waffles= - -$FoodOfGrocery:yoghurt= - -$FoodOfGrocery:fish= - - - -$ShopVerb:buy= -- Gekauft -- Kauft -- Kauf - -$ShopVerb:purchase= -- Einkäufe - -$ShopVerb:shop= -- Geschäfte - - - - diff --git a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/CognitiveModels/LUIS/en/todo.lu b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/CognitiveModels/LUIS/en/todo.lu deleted file mode 100644 index 9b7cb7509f..0000000000 --- a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/CognitiveModels/LUIS/en/todo.lu +++ /dev/null @@ -1,595 +0,0 @@ -> ! Automatically generated by [LUDown CLI](https://github.com/Microsoft/botbuilder-tools/tree/master/Ludown), Tue Feb 26 2019 14:04:06 GMT+0800 (China Standard Time) - -> ! Source LUIS JSON file: todo.json - -> ! Source QnA TSV file: Not Specified - -> ! Source QnA Alterations file: Not Specified - - -> # Intent definitions - -## AddToDo -- add a few items to the {ListType=grocery} list -- add a {ListType=grocery} item to {TaskContentML=buy fish} -- add a {ListType=grocery} item to {TaskContentML=buy fruit and vegetables} -- add a {ListType=grocery} item to {TaskContentML=buy vegetables} -- add a new {ListType=shopping} list -- add a {ListType=shopping} item to {TaskContentML=buy dancing dresses} -- add a {ListType=shopping} item to {TaskContentML=buy orange juice} -- add a task for {TaskContentML=anna west bring my swimsuit for my vacation} -- add a task for {TaskContentML=jimmy to play xbox games with me after work} -- add a task for {TaskContentML=li lei to bring my coat from home} -- add a task for {TaskContentML=raghu to bring my chocolates from germany} -- add a task {TaskContentML=pasta sunday march 3rd} -- add a task that {TaskContentML=purchase fruit and vegetables} -- add a task to {TaskContentML=finish driving test this week} -- add a task to {TaskContentML=pick mary up after work} -- add a task to {TaskContentML=shop at gnc after work} -- add a {ListType=to do} that {TaskContentML=purchase a nice sweater} -- add a {ListType=to do} to {TaskContentML=buy shoes} -- add a {ListType=todo} item {TaskContentML=vacuuming by october 3rd} -- add action item for {TaskContentML=khalifa that pack my school supplies} in my list -- add an item to {TaskContentML=buy some snacks} -- add an task of {TaskContentML=chores to do around the house} -- add {TaskContentML=bronwnies} to the {ListType=grocery} list -- add {TaskContentML=buy gum} -- add {TaskContentML=buy milk} to my {ListType=shopping} list -- add {TaskContentML=call my mother} to my {ListType=todo} list -- add {TaskContentML=due date august to peanut butter jelly bread milk} on {ListType=todos} list -- add {TaskContentML=go running} to my {ListType=to dos} -- add {TaskContentML=go to whole foods} in my {ListType=to do} list -- add {ListType=grocery} add {TaskContentML=spinach} my {ListType=groceries} list -- add {ListType=grocery} items {TaskContentML=cream cheese and raisin} to the list -- add {ListType=grocery} items {TaskContentML=dinners and storage bag} to the {ListType=shopping} list -- add {TaskContentML=have a haircut} to my tasks -- add items as i speak -- add {TaskContentML=juicer} {ListType=groceries} list -- add {TaskContentML=melon and sugars and brown sugar} to {ListType=shopping} list -- add more to {ListType=grocery} list -- add {TaskContentML=peanuts} the {ListType=grocery} list -- add {TaskContentML=purchase a cinema ticket} to my list -- add {TaskContentML=purchasing food and drinks} to my {ListType=shopping} list -- add {TaskContentML=reading} to my {ListType=to do} list -- add {TaskContentML=shoes} to the {ListType=shopping} lists -- add some items to that {ListType=shopping} notes -- add some items to the {ListType=grocery} list -- add some {TaskContentML=jeans} on our {ListType=shopping} lists -- add something in this {ListType=grocery} list -- add something to my list -- add {TaskContentML=tapioca starch} on my {ListType=shopping} list -- add {TaskContentML=tapioca starch} on our {ListType=shopping} list -- add task to {TaskContentML=buy a coat} -- add task to {TaskContentML=set up dining room table} -- add this {TaskContentML=my 2017 goals} in my list -- add this on our {ListType=shopping} list -- add this stuff on my {ListType=shopping} list -- add this thing in {ListType=to do} list -- add to my {ListType=grocery} list -- add to my {ListType=to do} list {TaskContentML=pick up clothes} -- add to my {ListType=to do} list {TaskContentML=print papers for 10 copies this afternoon} -- add to my {ListType=todos} list {TaskContentML=mail the insurance forms out by saturday} -- add to note {ListType=shopping} list -- add to {ListType=shopping} list -- add to the {ListType=grocery} note {TaskContentML=buy milk} -- append a {TaskContentML=summer reading} in my list -- append an task of {TaskContentML=guest to invite at the party} -- ask a task for {TaskContentML=kim to bring my coat from home} -- can i add {TaskContentML=shirts} on the {ListType=todos} list -- can i put on {TaskContentML=caramel cheese popcorn} on my {ListType=grocery} list -- could i add {TaskContentML=medicine} to the {ListType=todos} list -- create a task to {TaskContentML=meet my friends} -- create task that {TaskContentML=go to the mall} -- create task that {TaskContentML=meet john after 5:00 p.m.} -- create task to {TaskContentML=cyber shopping on nov. 11} -- create to do that {TaskContentML=read a book tonight} -- create to do to {TaskContentML=go running in the park} -- put {TaskContentML=cheese} on list -- put {TaskContentML=ham} on my {ListType=shopping} list -- put {TaskContentML=hikes} on my {ListType=to do} list -- put {TaskContentML=ice cream} on the {ListType=groceries} list -- put {TaskContentML=milk} on my {ListType=grocery} list -- put {TaskContentML=on caramel cheese popcorn} on my {ListType=grocery shopping} list -- remind me that {TaskContentML=attend the meeting tomorrow} -- remind me to {TaskContentML=buy first aid creams and berries} -- remind me to {TaskContentML=buy milk} -- remind me to {TaskContentML=meet my teacher} -- remind me to shop for {TaskContentML=a new carpet} -- to {ListType=grocery} list add {TaskContentML=milk} -- to my {ListType=shopping} list add {TaskContentML=paper towels} -- to my vacation {ListType=to do} list add {TaskContentML=buy sunblock} -- would you add {TaskContentML=heavy cream} to the {ListType=todos} list -- add a task to {TaskContentPattern} -- create to do to {TaskContentPattern} -- remind me that {TaskContentPattern} -- create a task to {TaskContentPattern} -- add to do that {TaskContentPattern} -- remind me to purchase {ShopContent} -- create a to do to {TaskContentPattern} -- add {TaskContentPattern} to my grocery list -- add a to do that purchase {ShopContent} -- add buy {ShopContent} to my grocery list -- remind me to buy {ShopContent} -- remind me to shop {ShopContent} -- remind me to {TaskContentPattern} -- add buy {ShopContent} to my shopping list -- add a to do that shop {ShopContent} -- add {TaskContentPattern} to my to dos -- add task to {TaskContentPattern} -- add a task that shop {ShopContent} -- add {TaskContentPattern} to my todo list -- create task to {TaskContentPattern} -- add {TaskContentPattern} to my tasks -- add to do to {TaskContentPattern} -- add a to do that buy {ShopContent} -- add a to do to {TaskContentPattern} -- add a task that buy {ShopContent} -- add a task to shop {ShopContent} -- add a task that purchase {ShopContent} -- add {TaskContentPattern} to my to do list - - -## DeleteToDo -- can you delete {TaskContentML=todo1} -- can you delete {TaskContentML=xxx} item -- can you help to remove {ContainsAll=all} tasks -- cancel {TaskContentML=apples} from {ListType=shopping} list -- delete {ContainsAll=all} from my {ListType=grocery} list -- delete {TaskContentML=eggs} from list -- delete off {TaskContentML=pancake mix} on the {ListType=shopping} list -- delete {TaskContentML=shampoo} from {ListType=shopping} list -- delete {TaskContentML=shirts} from list -- delete task {TaskContentML=go fishing} -- delete task {TaskContentML=go to cinema tonight} -- delete the item {TaskContentML=buy socks} from my {ListType=to-do} list -- delete the second task in my {ListType=shopping} list -- delete the task {TaskContentML=house cleanup this weekend} -- delete the task that {TaskContentML=hit the gym every morning} -- delete the to do {TaskContentML=meet my friends tomorrow} -- delete the to do that {TaskContentML=daily practice piano} -- delete the to do that {TaskContentML=meet john when he come here the next friday} -- delete to do {TaskContentML=buy milk} -- delete to do {TaskContentML=go shopping} -- delete to do that {TaskContentML=go hiking tomorrow} -- erase {TaskContentML=bananas} from {ListType=shopping} list -- erase {TaskContentML=peanuts} on the {ListType=shopping} list -- no need to {TaskContentML=buy milk} in {ListType=grocery} list -- omit the {TaskContentML=milk} in the {ListType=grocery} list -- remove {ContainsAll=all} -- remove {ContainsAll=all} tasks -- remove {TaskContentML=asprin} from {ListType=shopping} list -- remove {TaskContentML=black shoes} from {ListType=shopping} list -- remove {TaskContentML=class} from {ListType=todo} list -- remove {TaskContentML=salad vegetables} from {ListType=grocery} list -- remove task {TaskContentML=buy dog food} -- remove task {TaskContentML=go shopping} -- remove task that {TaskContentML=go hiking this weekend} -- remove task that {TaskContentML=lawn mowing} -- remove the item {TaskContentML=paris} from my list -- remove the task that {TaskContentML=go to library after work} -- remove the to do {TaskContentML=physical examination} -- remove the to do that {TaskContentML=pick tom up at six p.m.} -- remove to do {TaskContentML=go to the gym} -- remove to do that {TaskContentML=go to the dentist tomorrow morning} -- {ListType=shopping} list delete {TaskContentML=a} -- {ListType=shopping} list delete {TaskContentML=dog food} -- {ListType=shopping} list delete {TaskContentML=eggs} -- {ListType=shopping} list delete {TaskContentML=milk} -- take {TaskContentML=coffee} off my {ListType=groceries} list -- take {TaskContentML=lemons and onions} off my {ListType=shopping} list -- take {TaskContentML=milk} off {ListType=grocery} list -- take {TaskContentML=socks and shoes} off my {ListType=shopping} list -- {ListType=todo} list delete {TaskContentML=paris vacation} -- remove to do {TaskContentPattern} -- delete the to do that {TaskContentPattern} -- delete task {TaskContentPattern} -- remove the task {TaskContentPattern} -- remove the to do {TaskContentPattern} -- delete the to do {TaskContentPattern} -- delete to do {TaskContentPattern} -- delete the task {TaskContentPattern} - - -## MarkToDo -- {ContainsAll=all} have been done -- {ContainsAll=all} have been purchased in the {ListType=shopping} list -- already complete the {ListType=shopping} items in the list -- check off {TaskContentML=apples} from list -- check off {TaskContentML=bananas} from my {ListType=grocery} list -- check off {TaskContentML=garbage} from {ListType=grocer} list -- check off {TaskContentML=meet john at 8 am} from {ListType=to do} list -- check off {TaskContentML=shampoo} from {ListType=shopping} list as done -- check the box {TaskContentML=shampoo} in my {ListType=shopping} list -- complete {ContainsAll=all} -- complete {TaskContentML=pick up black shoes} in my {ListType=to-do} list -- complete task {TaskContentML=go shopping} -- done with the task {TaskContentML=abc} in our {ListType=shopping} list -- done with the task {TaskContentML=shopping-a} -- done with the task {TaskContentML=tapioca starch} in our {ListType=shopping} list -- finish {TaskContentML=hikes} on my {ListType=to do} list -- finish {TaskContentML=peanuts} on the {ListType=shopping} list -- let me check off the {ListType=groceries} list -- mark {TaskContentML=buy fish} as completed -- mark {TaskContentML=fish} as complete -- mark {TaskContentML=happy} on {ListType=to dos} list -- mark {TaskContentML=lemons and onions} in {ListType=grocery} list -- mark {TaskContentML=meat} complete -- mark {TaskContentML=meat} completed -- mark {TaskContentML=meat} done -- mark {TaskContentML=meat} finished -- mark {TaskContentML=pancake mix} on my {ListType=grocery shopping} list -- mark {TaskContentML=peanuts} on my {ListType=grocery} list as done -- mark {TaskContentML=peanuts} on my {ListType=grocery} {ListType=shopping} list -- mark {TaskContentML=pick mary up} as finished -- mark {TaskContentML=pick up milk} on my {ListType=to-do} list -- mark {TaskContentML=play badminton with tom} as finished -- mark {TaskContentML=salad} on my {ListType=grocery} {ListType=shopping} list -- mark {TaskContentML=salad} on the {ListType=groceries} list -- mark task {TaskContentML=buy a bottle of vinegar} as finished -- mark task {TaskContentML=go running} as finished -- mark task {TaskContentML=read a book} as done -- mark the first task as completed -- mark the item {TaskContentML=garbage} from {ListType=grocer} list -- mark the task {TaskContentML=buy milk} as done -- mark the task {TaskContentML=get some food} as complete -- mark the task go {ListType=shopping} as finished -- mark the task {TaskContentML=reserve a restaurant for tomorrow's dinner} as finished -- mark the task {TaskContentML=visit my grandma} as completed -- set the {ListType=grocery} list as finished -- set the item as finished -- {ListType=shopping} list completed -- {ListType=shopping} list just done -- task {TaskContentML=abx-d} has been done -- task completed {TaskContentML=buy gum} -- the 3rd task finished -- complete task {TaskContentPattern} -- mark the task {TaskContentPattern} as completed -- mark {TaskContentPattern} as finished -- complete the task {TaskContentPattern} -- mark task {TaskContentPattern} as finished -- mark the task {TaskContentPattern} as finished - - -## None - - -## ShowNextPage -- are there any other tasks -- can you show next page in the {ListType=shopping} list -- display the next page -- show more tasks -- show more work -- show next page -- show next sheet -- show next website -- tell more tasks - - -## ShowPreviousPage -- display the previous page -- i need to check previous tasks -- show previous page - - -## ShowToDo -- access my {ListType=shopping} list -- access my {ListType=to do} list -- access the {ListType=groceries} list -- {ContainsAll=all} {ListType=shopping} list -- bring up {ListType=grocery} notes -- bring up {ListType=shopping} note -- browse my {ListType=groceries} -- can you show my {ListType=to do} list -- check my task list -- check my {ListType=to do} list -- display {ContainsAll=all} notes from last month -- display {ListType=groceries} list -- display notes with {ListType=groceries} -- display {ListType=shopping} list -- display tasks note -- display {ListType=todo} list -- do i have a list called {ListType=grocery} list -- do i have any lists -- find list about {ListType=shopping} -- find my {ListType=grocery} items i saved on saturday -- find my {ListType=shopping} list -- find note labeled {ListType=grocery} -- find notes called {ListType=grocery} -- find notes for {ListType=grocery} {ListType=shopping} -- find notes with {ListType=groceries} -- find {ListType=shopping} -- find task list on {ListType=shopping} -- find the list i create for {ListType=shopping} -- find the {ListType=to do list} for me -- get work items on my {ListType=todo} list -- help access my personal list -- help show my {ListType=to do} list -- i have to see my tasks -- i have to see the {ListType=grocery} list i created today -- i want to check my {ListType=shopping} list -- i want to see {ListType=grocery} list -- is there anything on my {ListType=to do} list -- list {ListType=grocery} notes -- look at my {ListType=grocery} list -- pull {ListType=grocery} list -- pull up {ListType=grocer} list -- pull up {ListType=grocery} list -- pull up my {ListType=grocery} list -- pull up my notes -- pull up {ListType=to do} list -- read aloud my {ListType=grocery} list -- read out my tasks -- review {ListType=grocery} list -- {ListType=shopping} list -- show me {ContainsAll=all} tasks -- show my {ListType=to do} list -- show my {ListType=to dos} -- show my {ListType=todos} -- view my {ListType=grocery} list -- view {ListType=shopping} list -- what about {ListType=grocery} list -- what are my notes for the {ListType=grocery} store -- what are my tasks for {ListType=todo} -- what do i have to buy on the {ListType=shopping} list -- what do i need to buy in the {ListType=shopping} list -- what is on my {ListType=shopping} list -- where is the {ListType=grocery} {ListType=shopping} notes i worked on last night -- would you bring up my new {ListType=grocery} notes - - -> # Entity definitions - -$ContainsAll:simple - -$ListType:simple - -$TaskContentML:simple - - -> # PREBUILT Entity definitions - -$PREBUILT:number - -$PREBUILT:ordinal - - -> # Phrase list definitions - - -> # List entities - -$FoodOfGrocery:air freshener= - -$FoodOfGrocery:apple= -- apples - -$FoodOfGrocery:bacon= - -$FoodOfGrocery:bagel= - -$FoodOfGrocery:bagels= - -$FoodOfGrocery:banana= -- bananas - -$FoodOfGrocery:beans= - -$FoodOfGrocery:beverages= - -$FoodOfGrocery:bread= - -$FoodOfGrocery:buns= - -$FoodOfGrocery:burgers= - -$FoodOfGrocery:butter= - -$FoodOfGrocery:carrot= -- carrots - -$FoodOfGrocery:celery= - -$FoodOfGrocery:cereal= - -$FoodOfGrocery:cheese= - -$FoodOfGrocery:chicken= - -$FoodOfGrocery:chili= - -$FoodOfGrocery:chips= - -$FoodOfGrocery:chocolate= -- chocolates - -$FoodOfGrocery:chocolate chip= -- chocoloate chips - -$FoodOfGrocery:chops= - -$FoodOfGrocery:cloves= - -$FoodOfGrocery:coffee= - -$FoodOfGrocery:corn= - -$FoodOfGrocery:crispy= - -$FoodOfGrocery:croissant= -- croissants - -$FoodOfGrocery:cupcakes= - -$FoodOfGrocery:dairy= - -$FoodOfGrocery:dishwashing detergent= - -$FoodOfGrocery:donuts= - -$FoodOfGrocery:drinks= - -$FoodOfGrocery:duck= - -$FoodOfGrocery:egg= -- eggs - -$FoodOfGrocery:flour= - -$FoodOfGrocery:fries= - -$FoodOfGrocery:frozen food= - -$FoodOfGrocery:fruit= -- fruits - -$FoodOfGrocery:garbage bag= -- garbage bags - -$FoodOfGrocery:garlic= - -$FoodOfGrocery:grilled= - -$FoodOfGrocery:ham= - -$FoodOfGrocery:hamburger= - -$FoodOfGrocery:ice cream= - -$FoodOfGrocery:jam= - -$FoodOfGrocery:lamb= - -$FoodOfGrocery:laundry detergent= - -$FoodOfGrocery:lemon= -- lemons - -$FoodOfGrocery:lettuce= - -$FoodOfGrocery:lettuce and salad= -- salad -- salads - -$FoodOfGrocery:lobster= - -$FoodOfGrocery:marinated= - -$FoodOfGrocery:meat= - -$FoodOfGrocery:meatballs= - -$FoodOfGrocery:meatloaf= - -$FoodOfGrocery:milk= - -$FoodOfGrocery:onion= -- onions - -$FoodOfGrocery:oysters= - -$FoodOfGrocery:pancake mix= - -$FoodOfGrocery:pancakes= - -$FoodOfGrocery:pasta= - -$FoodOfGrocery:pastry= -- pastries - -$FoodOfGrocery:pear= -- pears - -$FoodOfGrocery:pepper= - -$FoodOfGrocery:pie= -- pies - -$FoodOfGrocery:pita= - -$FoodOfGrocery:potato= -- potatoes - -$FoodOfGrocery:poultry= - -$FoodOfGrocery:ribs= - -$FoodOfGrocery:rice= - -$FoodOfGrocery:roast= - -$FoodOfGrocery:rolls= - -$FoodOfGrocery:salads= - -$FoodOfGrocery:salmon= - -$FoodOfGrocery:salt= - -$FoodOfGrocery:sandwich= - -$FoodOfGrocery:sauce= - -$FoodOfGrocery:sausage= -- sausages - -$FoodOfGrocery:scones= - -$FoodOfGrocery:shellfish= - -$FoodOfGrocery:shrimp= - -$FoodOfGrocery:snacks= - -$FoodOfGrocery:sour cream= - -$FoodOfGrocery:steak= - -$FoodOfGrocery:strawberries= - -$FoodOfGrocery:sugar= - -$FoodOfGrocery:sushi= - -$FoodOfGrocery:sweets= - -$FoodOfGrocery:tenderloin= - -$FoodOfGrocery:tomato= -- tomatoes - -$FoodOfGrocery:toothpaste= - -$FoodOfGrocery:tortilla= - -$FoodOfGrocery:tuna= - -$FoodOfGrocery:turkey= - -$FoodOfGrocery:veal= - -$FoodOfGrocery:vegetable= -- vegetables - -$FoodOfGrocery:venison= - -$FoodOfGrocery:waffles= - -$FoodOfGrocery:yoghurt= - -$FoodOfGrocery:fish= - - - -$ShopVerb:buy= -- bought -- buys -- buying - -$ShopVerb:purchase= -- purchases - -$ShopVerb:shop= -- shops - - - diff --git a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/CognitiveModels/LUIS/es/todo.lu b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/CognitiveModels/LUIS/es/todo.lu deleted file mode 100644 index 6603fb1cf1..0000000000 --- a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/CognitiveModels/LUIS/es/todo.lu +++ /dev/null @@ -1,592 +0,0 @@ -> ! Automatically generated by [LUDown CLI](https://github.com/Microsoft/botbuilder-tools/tree/master/Ludown), Tue Feb 26 2019 14:04:06 GMT+0800 (China Standard Time) - -> ! Source LUIS JSON file: todo.json - -> ! Source QnA TSV file: Not Specified - -> ! Source QnA Alterations file: Not Specified - - -> # Intent definitions - -## AddToDo -- Añadir algunos elementos a la {ListType=Comestibles} Lista -- Agregar un {ListType=Comestibles} elemento a {TaskContentML=comprar pescado} -- Agregar un {ListType=Comestibles} elemento a {TaskContentML=comprar frutas y verduras} -- Agregar un {ListType=Comestibles} elemento a {TaskContentML=comprar verduras} -- Agregar un nuevo {ListType=Compras} Lista -- Agregar un {ListType=Compras} elemento a {TaskContentML=comprar vestidos de baile} -- Agregar un {ListType=Compras} elemento a {TaskContentML=comprar zumo de naranja} -- agregar una tarea para {TaskContentML=Anna West traer mi traje de baño para mis vacaciones} -- agregar una tarea para {TaskContentML=Jimmy para jugar juegos de Xbox conmigo después del trabajo} -- agregar una tarea para {TaskContentML=Li Lei para traer mi abrigo de casa} -- agregar una tarea para {TaskContentML=Raghu para traer mis chocolates de Alemania} -- agregar una tarea {TaskContentML=pasta Domingo marzo 3rd} -- agregar una tarea que {TaskContentML=comprar frutas y verduras} -- agregar una tarea a {TaskContentML=terminar la prueba de conducción esta semana} -- agregar una tarea a {TaskContentML=recoger Mary después del trabajo} -- agregar una tarea a {TaskContentML=tienda en GNC después del trabajo} -- Agregar un {ListType=hacer} ese {TaskContentML=comprar un buen suéter} -- Agregar un {ListType=hacer} Para {TaskContentML=comprar zapatos} -- Agregar un {ListType=todo} Artículo {TaskContentML=aspirando antes del 3 de octubre} -- Agregar elemento de acción para {TaskContentML=Khalifa que empacar mis suministros escolares} en mi lista -- Agregar un elemento a {TaskContentML=comprar algunos aperitivos} -- agregar una tarea de {TaskContentML=tareas para hacer alrededor de la casa} -- Añadir {TaskContentML=los bronwnies} a la {ListType=Comestibles} Lista -- Añadir {TaskContentML=comprar chicle} -- Añadir {TaskContentML=comprar leche} a mi {ListType=Compras} Lista -- Añadir {TaskContentML=llamar a mi madre} a mi {ListType=todo} Lista -- Añadir {TaskContentML=fecha de vencimiento agosto a mantequilla de maní jalea pan leche} En {ListType=todos} Lista -- Añadir {TaskContentML=ir corriendo} a mi {ListType=a dos} -- Añadir {TaskContentML=ir a alimentos enteros} en mi {ListType=hacer} Lista -- Añadir {ListType=Comestibles} Añadir {TaskContentML=Espinacas} Mi {ListType=Comestibles} Lista -- Añadir {ListType=Comestibles} Artículos {TaskContentML=queso crema y pasas} a la lista -- Añadir {ListType=Comestibles} Artículos {TaskContentML=cenas y bolsa de almacenamiento} a la {ListType=Compras} Lista -- Añadir {TaskContentML=tener un corte de pelo} a mis tareas -- agregar elementos mientras hablo -- Añadir {TaskContentML=Exprimidor} {ListType=Comestibles} Lista -- Añadir {TaskContentML=melón y azúcares y azúcar morena} Para {ListType=Compras} Lista -- Añadir más a {ListType=Comestibles} Lista -- Añadir {TaskContentML=Cacahuetes} el {ListType=Comestibles} Lista -- Añadir {TaskContentML=comprar un billete de cine} a mi lista -- Añadir {TaskContentML=comprar alimentos y bebidas} a mi {ListType=Compras} Lista -- Añadir {TaskContentML=Lectura} a mi {ListType=hacer} Lista -- Añadir {TaskContentML=Zapatos} a la {ListType=Compras} Listas -- agregar algunos elementos a ese {ListType=Compras} Notas -- Añadir algunos {TaskContentML=Jeans} en nuestro {ListType=Compras} Listas -- Añadir algo en este {ListType=Comestibles} Lista -- Añadir algo a mi lista -- Añadir {TaskContentML=almidón de tapioca} en mi {ListType=Compras} Lista -- Añadir {TaskContentML=almidón de tapioca} en nuestro {ListType=Compras} Lista -- Agregar tarea a {TaskContentML=comprar un abrigo} -- Agregar tarea a {TaskContentML=configurar mesa comedor} -- Agregar este {TaskContentML=mis 2017 metas} en mi lista -- Agregar esto en nuestro {ListType=Compras} Lista -- Añadir estas cosas en mi {ListType=Compras} Lista -- Añadir esta cosa en {ListType=hacer} Lista -- Añadir a mi {ListType=Comestibles} Lista -- Añadir a mi {ListType=hacer} Lista {TaskContentML=recoger la ropa} -- Añadir a mi {ListType=hacer} Lista {TaskContentML=papeles impresos para 10 copias esta tarde} -- Añadir a mi {ListType=todos} Lista {TaskContentML=enviar los formularios de seguro para el sábado} -- Añadir a la nota {ListType=Compras} Lista -- Añadir a {ListType=Compras} Lista -- Añadir a la {ListType=Comestibles} Nota {TaskContentML=comprar leche} -- anexar un {TaskContentML=lectura de verano} en mi lista -- anexar una tarea de {TaskContentML=invitado a invitar a la fiesta} -- hacer una tarea para {TaskContentML=Kim para traer mi abrigo de casa} -- Puedo añadir {TaskContentML=Camisas} en el {ListType=todos} Lista -- puedo poner en {TaskContentML=palomitas de queso caramelo} en mi {ListType=Comestibles} Lista -- podría añadir {TaskContentML=Medicina} a la {ListType=todos} Lista -- crear una tarea para {TaskContentML=conocer a mis amigos} -- crear una tarea que {TaskContentML=ir al centro comercial} -- crear una tarea que {TaskContentML=reunirse con John después de 5:00 p.m.} -- crear tarea para {TaskContentML=Cyber Shopping en noviembre. 11} -- crear para hacer eso {TaskContentML=leer un libro esta noche} -- crear para hacer para {TaskContentML=ir corriendo en el Parque} -- Poner {TaskContentML=Queso} en la lista -- Poner {TaskContentML=Él} en mi {ListType=Compras} Lista -- Poner {TaskContentML=Caminatas} en mi {ListType=hacer} Lista -- Poner {TaskContentML=Helado} en el {ListType=Comestibles} Lista -- Poner {TaskContentML=Leche} en mi {ListType=Comestibles} Lista -- Poner {TaskContentML=en palomitas de queso caramelo} en mi {ListType=Compras} Lista -- me recuerdan que {TaskContentML=asistir a la reunión de mañana} -- me recuerdan a {TaskContentML=comprar cremas y bayas de primeros auxilios} -- me recuerdan a {TaskContentML=comprar leche} -- me recuerdan a {TaskContentML=conocer a mi maestro} -- me recuerdan a comprar {TaskContentML=una alfombra nueva} -- Para {ListType=Comestibles} Agregar lista {TaskContentML=Leche} -- a mi {ListType=Compras} Agregar lista {TaskContentML=toallas de papel} -- a mis vacaciones {ListType=hacer} Agregar lista {TaskContentML=comprar bloqueador solar} -- ¿añadirías {TaskContentML=crema pesada} a la {ListType=todos} Lista -- agregar una tarea a {TaskContentPattern} -- crear para hacer para {TaskContentPattern} -- me recuerdan que {TaskContentPattern} -- crear una tarea para {TaskContentPattern} -- Añadir a hacer eso {TaskContentPattern} -- me recuerdan a comprar {ShopContent} -- crear a hacer para {TaskContentPattern} -- Añadir {TaskContentPattern} a mi lista de comestibles -- Agregar a hacer esa compra {ShopContent} -- Añadir compra {ShopContent} a mi lista de comestibles -- Recuérdame que compre {ShopContent} -- me recuerdan a {TaskContentPattern} -- Añadir compra {ShopContent} a mi lista de compras -- Añadir a hacer esa tienda {ShopContent} -- Añadir {TaskContentPattern} a mi a dos -- Agregar tarea a {TaskContentPattern} -- agregar una tarea que tienda {ShopContent} -- Añadir {TaskContentPattern} a mi lista de tareas -- crear tarea para {TaskContentPattern} -- Añadir {TaskContentPattern} a mis tareas -- Añadir a hacer para {TaskContentPattern} -- Añadir a hacer que comprar {ShopContent} -- Agregar a hacer para {TaskContentPattern} -- agregar una tarea que compre {ShopContent} -- agregar una tarea para comprar {ShopContent} -- Añadir {TaskContentPattern} a mi lista de hacer - - -## DeleteToDo -- puede eliminar {TaskContentML=todo1 por} -- puede eliminar {TaskContentML=Xxx} Artículo -- puede ayudar a eliminar {ContainsAll=todo} Tareas -- Cancelar {TaskContentML=Manzanas} De {ListType=Compras} Lista -- Eliminar {ContainsAll=todo} de mi {ListType=Comestibles} Lista -- Eliminar {TaskContentML=Huevos} de la lista -- eliminar {TaskContentML=mezcla de panqueques} en el {ListType=Compras} Lista -- Eliminar {TaskContentML=Champú} De {ListType=Compras} Lista -- Eliminar {TaskContentML=Camisas} de la lista -- eliminar tarea {TaskContentML=ir de pesca} -- eliminar tarea {TaskContentML=ir al cine esta noche} -- eliminar el elemento {TaskContentML=comprar calcetines} de mi {ListType=hacer} Lista -- eliminar la segunda tarea en mi {ListType=Compras} Lista -- eliminar la tarea {TaskContentML=limpieza de la casa este fin de semana} -- eliminar la tarea que {TaskContentML=golpear el gimnasio cada mañana} -- eliminar el para hacer {TaskContentML=conocer a mis amigos mañana} -- eliminar el para hacer eso {TaskContentML=piano de la práctica diaria} -- eliminar el para hacer eso {TaskContentML=conocer a John cuando viene aquí el próximo viernes} -- eliminar para hacer {TaskContentML=comprar leche} -- eliminar para hacer {TaskContentML=ir de compras} -- eliminar para hacer eso {TaskContentML=ir de excursión mañana} -- Borrar {TaskContentML=Plátanos} De {ListType=Compras} Lista -- Borrar {TaskContentML=Cacahuetes} en el {ListType=Compras} Lista -- no hay necesidad de {TaskContentML=comprar leche} En {ListType=Comestibles} Lista -- omitir el {TaskContentML=Leche} En {ListType=Comestibles} Lista -- eliminar {ContainsAll=todo} -- eliminar {ContainsAll=todo} Tareas -- eliminar {TaskContentML=Asprin} De {ListType=Compras} Lista -- eliminar {TaskContentML=zapatos negros} De {ListType=Compras} Lista -- eliminar {TaskContentML=Clase} De {ListType=todo} Lista -- eliminar {TaskContentML=Ensalada de verduras} De {ListType=Comestibles} Lista -- quitar tarea {TaskContentML=comprar comida para perros} -- quitar tarea {TaskContentML=ir de compras} -- eliminar tarea que {TaskContentML=ir de excursión este fin de semana} -- eliminar tarea que {TaskContentML=siega del césped} -- quitar el elemento {TaskContentML=París} de mi lista -- eliminar la tarea que {TaskContentML=ir a la biblioteca después del trabajo} -- quitar el para hacer {TaskContentML=examen físico} -- quitar el para hacer eso {TaskContentML=recoger Tom a las seis p.m.} -- quitar para hacer {TaskContentML=ir al gimnasio} -- quitar para hacer eso {TaskContentML=ir al dentista mañana por la mañana} -- {ListType=Compras} eliminar lista {TaskContentML=Un} -- {ListType=Compras} eliminar lista {TaskContentML=comida para perros} -- {ListType=Compras} eliminar lista {TaskContentML=Huevos} -- {ListType=Compras} eliminar lista {TaskContentML=Leche} -- Tomar {TaskContentML=Café} de mi {ListType=Comestibles} Lista -- Tomar {TaskContentML=limones y cebollas} de mi {ListType=Compras} Lista -- Tomar {TaskContentML=Leche} apagado {ListType=Comestibles} Lista -- Tomar {TaskContentML=calcetines y zapatos} de mi {ListType=Compras} Lista -- {ListType=todo} eliminar lista {TaskContentML=Paris vacaciones} -- quitar para hacer {TaskContentPattern} -- eliminar el para hacer eso {TaskContentPattern} -- eliminar tarea {TaskContentPattern} -- eliminar la tarea {TaskContentPattern} -- quitar el para hacer {TaskContentPattern} -- eliminar el para hacer {TaskContentPattern} -- eliminar para hacer {TaskContentPattern} - - -## MarkToDo -- {ContainsAll=todo} se han hecho -- {ContainsAll=todo} han sido comprados en el {ListType=Compras} Lista -- ya completan el {ListType=Compras} elementos de la lista -- Check OFF {TaskContentML=Manzanas} de la lista -- Check OFF {TaskContentML=Plátanos} de mi {ListType=Comestibles} Lista -- Check OFF {TaskContentML=Basura} De {ListType=Tendero} Lista -- Check OFF {TaskContentML=conocer a John a las 8 AM} De {ListType=hacer} Lista -- Check OFF {TaskContentML=Champú} De {ListType=Compras} lista como hecho -- Marque la casilla {TaskContentML=Champú} en mi {ListType=Compras} Lista -- íntegro {ContainsAll=todo} -- íntegro {TaskContentML=recoger los zapatos negros} en mi {ListType=hacer} Lista -- tarea completa {TaskContentML=ir de compras} -- hecho con la tarea {TaskContentML=Abc} en nuestro {ListType=Compras} Lista -- hecho con la tarea {TaskContentML=Shopping-a} -- hecho con la tarea {TaskContentML=almidón de tapioca} en nuestro {ListType=Compras} Lista -- Terminar {TaskContentML=Caminatas} en mi {ListType=hacer} Lista -- Terminar {TaskContentML=Cacahuetes} en el {ListType=Compras} Lista -- Déjame comprobar la {ListType=Comestibles} Lista -- Marca {TaskContentML=comprar pescado} como completada -- Marca {TaskContentML=Pescado} como completo -- Marca {TaskContentML=Feliz} En {ListType=a dos} Lista -- Marca {TaskContentML=limones y cebollas} En {ListType=Comestibles} Lista -- Marca {TaskContentML=Carne} íntegro -- Marca {TaskContentML=Carne} Completado -- Marca {TaskContentML=Carne} Hecho -- Marca {TaskContentML=Carne} Terminado -- Marca {TaskContentML=mezcla de panqueques} en mi {ListType=Compras} Lista -- Marca {TaskContentML=Cacahuetes} en mi {ListType=Comestibles} lista como hecho -- Marca {TaskContentML=Cacahuetes} en mi {ListType=Comestibles} {ListType=Compras} Lista -- Marca {TaskContentML=recoger Mary arriba} como terminado -- Marca {TaskContentML=recoger la leche} en mi {ListType=hacer} Lista -- Marca {TaskContentML=jugar bádminton con Tom} como terminado -- Marca {TaskContentML=Ensalada} en mi {ListType=Comestibles} {ListType=Compras} Lista -- Marca {TaskContentML=Ensalada} en el {ListType=Comestibles} Lista -- marcar tarea {TaskContentML=comprar una botella de vinagre} como terminado -- marcar tarea {TaskContentML=ir corriendo} como terminado -- marcar tarea {TaskContentML=leer un libro} como hecho -- marcar la primera tarea como completada -- marcar el elemento {TaskContentML=Basura} De {ListType=Tendero} Lista -- marcar la tarea {TaskContentML=comprar leche} como hecho -- marcar la tarea {TaskContentML=conseguir algo de comida} como completo -- marcar la tarea ir {ListType=Compras} como terminado -- marcar la tarea {TaskContentML=reservar un restaurante para la cena de mañana} como terminado -- marcar la tarea {TaskContentML=visitar a mi abuela} como completada -- establecer el {ListType=Comestibles} lista como terminada -- establecer el elemento como terminado -- {ListType=Compras} lista completada -- {ListType=Compras} lista acaba de hacer -- Tarea {TaskContentML=ABX-d} se ha hecho -- tarea completada {TaskContentML=comprar chicle} -- la 3ª tarea terminada -- tarea completa {TaskContentPattern} -- marcar la tarea {TaskContentPattern} como completada -- Marca {TaskContentPattern} como terminado -- completar la tarea {TaskContentPattern} -- marcar tarea {TaskContentPattern} como terminado -- marcar la tarea {TaskContentPattern} como terminado - - -## None - - -## ShowNextPage -- ¿hay otras tareas -- puede mostrar la página siguiente en el {ListType=Compras} Lista -- Mostrar la página siguiente -- Mostrar más tareas -- Mostrar más trabajo -- Mostrar página siguiente -- Mostrar hoja siguiente -- Mostrar siguiente sitio web -- contar más tareas - - -## ShowPreviousPage -- Mostrar la página anterior -- necesito comprobar las tareas anteriores -- Mostrar página anterior - - -## ShowToDo -- acceder a mi {ListType=Compras} Lista -- acceder a mi {ListType=hacer} Lista -- acceder a la {ListType=Comestibles} Lista -- {ContainsAll=todo} {ListType=Compras} Lista -- traer {ListType=Comestibles} Notas -- traer {ListType=Compras} Nota -- examinar mi {ListType=Comestibles} -- ¿Puedes mostrar mi {ListType=hacer} Lista -- comprobar mi lista de tareas -- comprobar mi {ListType=hacer} Lista -- Monitor {ContainsAll=todo} Notas del mes pasado -- Monitor {ListType=Comestibles} Lista -- Mostrar notas con {ListType=Comestibles} -- Monitor {ListType=Compras} Lista -- Mostrar tareas Nota -- Monitor {ListType=todo} Lista -- tengo una lista llamada {ListType=Comestibles} Lista -- ¿tengo alguna lista -- encontrar la lista sobre {ListType=Compras} -- encontrar mi {ListType=Comestibles} artículos que he ahorrado el sábado -- encontrar mi {ListType=Compras} Lista -- encontrar Nota etiquetada {ListType=Comestibles} -- encontrar notas llamadas {ListType=Comestibles} -- encontrar notas para {ListType=Comestibles} {ListType=Compras} -- encontrar notas con {ListType=Comestibles} -- Encontrar {ListType=Compras} -- encontrar la lista de tareas en {ListType=Compras} -- encontrar la lista i crear para {ListType=Compras} -- encontrar el {ListType=hacer la lista} para mí -- obtener artículos de trabajo en mi {ListType=todo} Lista -- ayudar a acceder a mi lista personal -- ayudar a mostrar mi {ListType=hacer} Lista -- tengo que ver mis tareas -- tengo que ver el {ListType=Comestibles} lista que he creado hoy -- Quiero comprobar mi {ListType=Compras} Lista -- quiero ver {ListType=Comestibles} Lista -- ¿hay algo en mi {ListType=hacer} Lista -- Lista {ListType=Comestibles} Notas -- Mira mi {ListType=Comestibles} Lista -- tirar {ListType=Comestibles} Lista -- Tire hacia arriba {ListType=Tendero} Lista -- Tire hacia arriba {ListType=Comestibles} Lista -- Tire hacia arriba de mi {ListType=Comestibles} Lista -- sacar mis notas -- Tire hacia arriba {ListType=hacer} Lista -- leer en voz alta mi {ListType=Comestibles} Lista -- leer mis tareas -- Revisión {ListType=Comestibles} Lista -- {ListType=Compras} Lista -- A ver {ContainsAll=todo} Tareas -- Mostrar mi {ListType=hacer} Lista -- Mostrar mi {ListType=a dos} -- Mostrar mi {ListType=todos} -- ver mi {ListType=Comestibles} Lista -- Vista {ListType=Compras} Lista -- Qué dices {ListType=Comestibles} Lista -- ¿Cuáles son mis notas para el {ListType=Comestibles} Tienda -- ¿Cuáles son mis tareas para {ListType=todo} -- ¿Qué tengo que comprar en el {ListType=Compras} Lista -- ¿Qué necesito para comprar en el {ListType=Compras} Lista -- lo que está en mi {ListType=Compras} Lista -- ¿Dónde está el {ListType=Comestibles} {ListType=Compras} notas que trabajé en la noche anterior -- ¿traería mi nuevo {ListType=Comestibles} Notas - - -> # Entity definitions - -$ContainsAll:simple - -$ListType:simple - -$TaskContentML:simple - - -> # PREBUILT Entity definitions - -$PREBUILT:number - -$PREBUILT:ordinal - - -> # Phrase list definitions - - -> # List entities - -$FoodOfGrocery:air freshener= - -$FoodOfGrocery:apple= -- Manzanas - -$FoodOfGrocery:bacon= - -$FoodOfGrocery:bagel= - -$FoodOfGrocery:bagels= - -$FoodOfGrocery:banana= -- Plátanos - -$FoodOfGrocery:beans= - -$FoodOfGrocery:beverages= - -$FoodOfGrocery:bread= - -$FoodOfGrocery:buns= - -$FoodOfGrocery:burgers= - -$FoodOfGrocery:butter= - -$FoodOfGrocery:carrot= -- Zanahorias - -$FoodOfGrocery:celery= - -$FoodOfGrocery:cereal= - -$FoodOfGrocery:cheese= - -$FoodOfGrocery:chicken= - -$FoodOfGrocery:chili= - -$FoodOfGrocery:chips= - -$FoodOfGrocery:chocolate= -- Chocolates - -$FoodOfGrocery:chocolate chip= -- chips de chocoloate - -$FoodOfGrocery:chops= - -$FoodOfGrocery:cloves= - -$FoodOfGrocery:coffee= - -$FoodOfGrocery:corn= - -$FoodOfGrocery:crispy= - -$FoodOfGrocery:croissant= -- Croissants - -$FoodOfGrocery:cupcakes= - -$FoodOfGrocery:dairy= - -$FoodOfGrocery:dishwashing detergent= - -$FoodOfGrocery:donuts= - -$FoodOfGrocery:drinks= - -$FoodOfGrocery:duck= - -$FoodOfGrocery:egg= -- Huevos - -$FoodOfGrocery:flour= - -$FoodOfGrocery:fries= - -$FoodOfGrocery:frozen food= - -$FoodOfGrocery:fruit= -- Frutas - -$FoodOfGrocery:garbage bag= -- bolsas de basura - -$FoodOfGrocery:garlic= - -$FoodOfGrocery:grilled= - -$FoodOfGrocery:ham= - -$FoodOfGrocery:hamburger= - -$FoodOfGrocery:ice cream= - -$FoodOfGrocery:jam= - -$FoodOfGrocery:lamb= - -$FoodOfGrocery:laundry detergent= - -$FoodOfGrocery:lemon= -- Limones - -$FoodOfGrocery:lettuce= - -$FoodOfGrocery:lettuce and salad= -- Ensalada -- Ensaladas - -$FoodOfGrocery:lobster= - -$FoodOfGrocery:marinated= - -$FoodOfGrocery:meat= - -$FoodOfGrocery:meatballs= - -$FoodOfGrocery:meatloaf= - -$FoodOfGrocery:milk= - -$FoodOfGrocery:onion= -- Cebollas - -$FoodOfGrocery:oysters= - -$FoodOfGrocery:pancake mix= - -$FoodOfGrocery:pancakes= - -$FoodOfGrocery:pasta= - -$FoodOfGrocery:pastry= -- Pasteles - -$FoodOfGrocery:pear= -- Peras - -$FoodOfGrocery:pepper= - -$FoodOfGrocery:pie= -- pies - -$FoodOfGrocery:pita= - -$FoodOfGrocery:potato= -- papas - -$FoodOfGrocery:poultry= - -$FoodOfGrocery:ribs= - -$FoodOfGrocery:rice= - -$FoodOfGrocery:roast= - -$FoodOfGrocery:rolls= - -$FoodOfGrocery:salads= - -$FoodOfGrocery:salmon= - -$FoodOfGrocery:salt= - -$FoodOfGrocery:sandwich= - -$FoodOfGrocery:sauce= - -$FoodOfGrocery:sausage= -- Salchichas - -$FoodOfGrocery:scones= - -$FoodOfGrocery:shellfish= - -$FoodOfGrocery:shrimp= - -$FoodOfGrocery:snacks= - -$FoodOfGrocery:sour cream= - -$FoodOfGrocery:steak= - -$FoodOfGrocery:strawberries= - -$FoodOfGrocery:sugar= - -$FoodOfGrocery:sushi= - -$FoodOfGrocery:sweets= - -$FoodOfGrocery:tenderloin= - -$FoodOfGrocery:tomato= -- Tomates - -$FoodOfGrocery:toothpaste= - -$FoodOfGrocery:tortilla= - -$FoodOfGrocery:tuna= - -$FoodOfGrocery:turkey= - -$FoodOfGrocery:veal= - -$FoodOfGrocery:vegetable= -- Verduras - -$FoodOfGrocery:venison= - -$FoodOfGrocery:waffles= - -$FoodOfGrocery:yoghurt= - -$FoodOfGrocery:fish= - - - -$ShopVerb:buy= -- Compró -- Compra -- Comprar - -$ShopVerb:purchase= -- Compras - -$ShopVerb:shop= -- Tiendas - - - - diff --git a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/CognitiveModels/LUIS/fr/todo.lu b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/CognitiveModels/LUIS/fr/todo.lu deleted file mode 100644 index bda0120808..0000000000 --- a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/CognitiveModels/LUIS/fr/todo.lu +++ /dev/null @@ -1,584 +0,0 @@ -> ! Automatically generated by [LUDown CLI](https://github.com/Microsoft/botbuilder-tools/tree/master/Ludown), Tue Feb 26 2019 14:04:06 GMT+0800 (China Standard Time) - -> ! Source LUIS JSON file: todo.json - -> ! Source QnA TSV file: Not Specified - -> ! Source QnA Alterations file: Not Specified - - -> # Intent definitions - -## AddToDo -- ajouter quelques éléments à la {ListType=Épicerie} Liste -- Ajouter un {ListType=Épicerie} élément à {TaskContentML=acheter du poisson} -- Ajouter un {ListType=Épicerie} élément à {TaskContentML=acheter des fruits et légumes} -- Ajouter un {ListType=Épicerie} élément à {TaskContentML=acheter des légumes} -- Ajouter un nouveau {ListType=achats} Liste -- Ajouter un {ListType=achats} élément à {TaskContentML=acheter des robes de danse} -- Ajouter un {ListType=achats} élément à {TaskContentML=acheter du jus d'orange} -- Ajouter une tâche pour {TaskContentML=Anna West apporter mon maillot de bain pour mes vacances} -- Ajouter une tâche pour {TaskContentML=Jimmy pour jouer à des jeux Xbox avec moi après le travail} -- Ajouter une tâche pour {TaskContentML=Li Lei pour apporter mon manteau de la maison} -- Ajouter une tâche pour {TaskContentML=Raghu pour apporter mes chocolats de l'Allemagne} -- Ajouter une tâche {TaskContentML=pâtes dimanche 3 mars} -- Ajouter une tâche qui {TaskContentML=acheter des fruits et légumes} -- Ajouter une tâche à {TaskContentML=terminer le test de conduite cette semaine} -- Ajouter une tâche à {TaskContentML=ramasser Mary après le travail} -- Ajouter une tâche à {TaskContentML=boutique à GNC après le travail} -- Ajouter un {ListType=à faire} Que {TaskContentML=acheter un joli chandail} -- Ajouter un {ListType=à faire} À {TaskContentML=acheter des chaussures} -- Ajouter un {ListType=Tous} Article {TaskContentML=passer l'aspirateur d'ici le 3 octobre} -- Ajouter un élément d'action pour {TaskContentML=Khalifa qui emballer mon fournitures scolaires} dans ma liste -- Ajouter un élément à {TaskContentML=acheter des collations} -- Ajouter une tâche de {TaskContentML=tâches à faire autour de la maison} -- Ajouter {TaskContentML=les bronwnies} à la {ListType=Épicerie} Liste -- Ajouter {TaskContentML=acheter de la gomme} -- Ajouter {TaskContentML=acheter du lait} à mon {ListType=achats} Liste -- Ajouter {TaskContentML=appeler ma mère} à mon {ListType=Tous} Liste -- Ajouter {TaskContentML=Date d'échéance août à beurre d'arachide gelée de lait de pain} Sur {ListType=Tous} Liste -- Ajouter {TaskContentML=aller en cours d'exécution} à mon {ListType=à dos} -- Ajouter {TaskContentML=aller à des aliments entiers} dans mon {ListType=à faire} Liste -- Ajouter {ListType=Épicerie} Ajouter {TaskContentML=Épinards} Mon {ListType=Épicerie} Liste -- Ajouter {ListType=Épicerie} Articles {TaskContentML=fromage à la crème et raisins secs} à la liste -- Ajouter {ListType=Épicerie} Articles {TaskContentML=dîners et sac de rangement} à la {ListType=achats} Liste -- Ajouter {TaskContentML=avoir une coupe de cheveux} à mes tâches -- Ajouter des articles comme je parle -- Ajouter {TaskContentML=Centrifugeuse} {ListType=Épicerie} Liste -- Ajouter {TaskContentML=melon et sucres et cassonade} À {ListType=achats} Liste -- Ajouter plus à {ListType=Épicerie} Liste -- Ajouter {TaskContentML=Arachides} Lla {ListType=Épicerie} Liste -- Ajouter {TaskContentML=acheter un ticket de cinéma} à ma liste -- Ajouter {TaskContentML=achat de nourriture et de boissons} à mon {ListType=achats} Liste -- Ajouter {TaskContentML=Lecture} à mon {ListType=à faire} Liste -- Ajouter {TaskContentML=Chaussures} à la {ListType=achats} Listes -- Ajouter des éléments à cette {ListType=achats} Notes -- Ajouter des éléments à la {ListType=Épicerie} Liste -- ajouter quelques {TaskContentML=Jeans} sur notre {ListType=achats} Listes -- ajouter quelque chose dans ce {ListType=Épicerie} Liste -- ajouter quelque chose à ma liste -- Ajouter {TaskContentML=amidon de tapioca} sur mon {ListType=achats} Liste -- Ajouter {TaskContentML=amidon de tapioca} sur notre {ListType=achats} Liste -- Ajouter une tâche à {TaskContentML=acheter un manteau} -- Ajouter une tâche à {TaskContentML=mettre en place la table de salle à manger} -- Ajouter cette {TaskContentML=Mes 2017 buts} dans ma liste -- ajouter ceci sur notre {ListType=achats} Liste -- Ajouter ce genre de choses sur mon {ListType=achats} Liste -- Ajouter cette chose dans {ListType=à faire} Liste -- Ajouter à mon {ListType=Épicerie} Liste -- Ajouter à mon {ListType=à faire} Liste {TaskContentML=ramasser des vêtements} -- Ajouter à mon {ListType=à faire} Liste {TaskContentML=Imprimez des papiers pour 10 exemplaires cet après-midi} -- Ajouter à mon {ListType=Tous} Liste {TaskContentML=Envoyer les formulaires d'assurance par samedi} -- Ajouter à la note {ListType=achats} Liste -- Ajouter à {ListType=achats} Liste -- Ajouter à la {ListType=Épicerie} Note {TaskContentML=acheter du lait} -- Ajouter un {TaskContentML=lecture d'été} dans ma liste -- Ajouter une tâche de {TaskContentML=invité à inviter à la fête} -- demander une tâche pour {TaskContentML=Kim pour apporter mon manteau de la maison} -- puis-je ajouter {TaskContentML=Chemises} sur le {ListType=Tous} Liste -- puis-je mettre sur {TaskContentML=popcorn au fromage au caramel} sur mon {ListType=Épicerie} Liste -- pourrais-je ajouter {TaskContentML=Médecine} à la {ListType=Tous} Liste -- créer une tâche pour {TaskContentML=Rencontrez mes amis} -- créer une tâche qui {TaskContentML=aller au centre commercial} -- créer une tâche qui {TaskContentML=rencontrer John après 5:00 p.m.} -- créer une tâche pour {TaskContentML=Cyber shopping sur Nov. 11} -- créer pour le faire {TaskContentML=lire un livre ce soir} -- créer à faire pour {TaskContentML=aller courir dans le parc} -- Mettre {TaskContentML=Fromage} sur la liste -- Mettre {TaskContentML=Lui} sur mon {ListType=achats} Liste -- Mettre {TaskContentML=Randonnées} sur mon {ListType=à faire} Liste -- Mettre {TaskContentML=crème glacée} sur le {ListType=Épicerie} Liste -- Mettre {TaskContentML=Lait} sur mon {ListType=Épicerie} Liste -- Mettre {TaskContentML=sur le popcorn au fromage caramel} sur mon {ListType=Épicerie} Liste -- Rappelez-moi que {TaskContentML=assister à la réunion demain} -- me rappeler de {TaskContentML=acheter des crèmes de premiers soins et des baies} -- me rappeler de {TaskContentML=acheter du lait} -- me rappeler de {TaskContentML=rencontrer mon professeur} -- me rappeler de magasiner pour {TaskContentML=un nouveau tapis} -- À {ListType=Épicerie} Ajouter une liste {TaskContentML=Lait} -- à mon {ListType=achats} Ajouter une liste {TaskContentML=Essuie-tout} -- à mes vacances {ListType=à faire} Ajouter une liste {TaskContentML=Acheter crème solaire} -- ajouterais-tu {TaskContentML=crème lourde} à la {ListType=Tous} Liste -- Ajouter une tâche à {TaskContentPattern} -- créer à faire pour {TaskContentPattern} -- Rappelez-moi que {TaskContentPattern} -- créer une tâche pour {TaskContentPattern} -- Ajouter à faire {TaskContentPattern} -- me rappeler d'acheter {ShopContent} -- créer un à faire pour {TaskContentPattern} -- Ajouter {TaskContentPattern} à ma liste d'épicerie -- Ajouter un pour faire cet achat {ShopContent} -- Ajouter acheter {ShopContent} à ma liste d'épicerie -- me rappeler de magasiner {ShopContent} -- me rappeler de {TaskContentPattern} -- Ajouter acheter {ShopContent} à ma liste de courses -- Ajouter un pour faire ce magasin {ShopContent} -- Ajouter {TaskContentPattern} à mon dos -- Ajouter une tâche qui magasinez {ShopContent} -- Ajouter {TaskContentPattern} à ma liste de tâches -- Ajouter {TaskContentPattern} à mes tâches -- Ajouter à faire pour {TaskContentPattern} -- Ajouter un à faire que d'acheter {ShopContent} -- Ajouter un à faire pour {TaskContentPattern} -- Ajouter une tâche qui achète {ShopContent} -- Ajouter une tâche à magasiner {ShopContent} -- Ajouter {TaskContentPattern} à ma liste de faire - - -## DeleteToDo -- pouvez-vous supprimer {TaskContentML=todo1} -- pouvez-vous supprimer {TaskContentML=Xxx} Article -- pouvez-vous aider à supprimer {ContainsAll=Tous} Tâches -- Annuler {TaskContentML=Pommes} De {ListType=achats} Liste -- Supprimer {ContainsAll=Tous} de mon {ListType=Épicerie} Liste -- Supprimer {TaskContentML=Oeufs} à partir de List -- supprimer {TaskContentML=mélange de crêpes} sur le {ListType=achats} Liste -- Supprimer {TaskContentML=Shampooing} De {ListType=achats} Liste -- Supprimer {TaskContentML=Chemises} à partir de List -- supprimer la tâche {TaskContentML=aller à la pêche} -- supprimer la tâche {TaskContentML=aller au cinéma ce soir} -- supprimer l'élément {TaskContentML=acheter des chaussettes} de mon {ListType=to-do} Liste -- supprimer la deuxième tâche dans mon {ListType=achats} Liste -- supprimer la tâche {TaskContentML=nettoyage de la maison ce week-end} -- supprimer la tâche qui {TaskContentML=frapper la salle de gym tous les matins} -- supprimer le faire {TaskContentML=rencontrer mes amis demain} -- supprimer le faire {TaskContentML=pratique quotidienne piano} -- supprimer le faire {TaskContentML=rencontrer John quand il vient ici le vendredi prochain} -- supprimer pour faire {TaskContentML=acheter du lait} -- supprimer pour faire {TaskContentML=aller faire du shopping} -- supprimer pour le faire {TaskContentML=aller à la randonnée demain} -- Effacer {TaskContentML=Bananes} De {ListType=achats} Liste -- Effacer {TaskContentML=Arachides} sur le {ListType=achats} Liste -- pas besoin de {TaskContentML=acheter du lait} Dans {ListType=Épicerie} Liste -- omettre le {TaskContentML=Lait} dans le {ListType=Épicerie} Liste -- Retirer {ContainsAll=Tous} -- Retirer {ContainsAll=Tous} Tâches -- Retirer {TaskContentML=Aspirine} De {ListType=achats} Liste -- Retirer {TaskContentML=chaussures noires} De {ListType=achats} Liste -- Retirer {TaskContentML=Classe} De {ListType=Tous} Liste -- Retirer {TaskContentML=salade légumes} De {ListType=Épicerie} Liste -- supprimer la tâche {TaskContentML=acheter des aliments pour chiens} -- supprimer la tâche {TaskContentML=aller faire du shopping} -- supprimer la tâche qui {TaskContentML=faire de la randonnée ce week-end} -- supprimer la tâche qui {TaskContentML=tonte de pelouse} -- supprimer l'élément {TaskContentML=Paris} de ma liste -- supprimer la tâche qui {TaskContentML=aller à la bibliothèque après le travail} -- supprimer le faire {TaskContentML=examen physique} -- supprimer le faire {TaskContentML=Pick Tom up à 18h} -- supprimer pour faire {TaskContentML=aller à la salle de gym} -- supprimer pour le faire {TaskContentML=aller chez le dentiste demain matin} -- {ListType=achats} supprimer la liste {TaskContentML=Un} -- {ListType=achats} supprimer la liste {TaskContentML=nourriture pour chiens} -- {ListType=achats} supprimer la liste {TaskContentML=Oeufs} -- {ListType=achats} supprimer la liste {TaskContentML=Lait} -- Prendre {TaskContentML=Café} de mon {ListType=Épicerie} Liste -- Prendre {TaskContentML=citrons et oignons} de mon {ListType=achats} Liste -- Prendre {TaskContentML=Lait} OFF {ListType=Épicerie} Liste -- Prendre {TaskContentML=chaussettes et chaussures} de mon {ListType=achats} Liste -- {ListType=Tous} supprimer la liste {TaskContentML=vacances à Paris} -- supprimer pour faire {TaskContentPattern} -- supprimer le faire {TaskContentPattern} -- supprimer la tâche {TaskContentPattern} - - -## MarkToDo -- {ContainsAll=Tous} ont été faites -- {ContainsAll=Tous} ont été achetés dans le {ListType=achats} Liste -- déjà complété le {ListType=achats} éléments de la liste -- Check OFF {TaskContentML=Pommes} à partir de List -- Check OFF {TaskContentML=Bananes} de mon {ListType=Épicerie} Liste -- Check OFF {TaskContentML=Ordures} De {ListType=Épicier} Liste -- Check OFF {TaskContentML=rencontrer John à 8 heures du matin} De {ListType=à faire} Liste -- Check OFF {TaskContentML=Shampooing} De {ListType=achats} liste comme fait -- Cochez la case {TaskContentML=Shampooing} dans mon {ListType=achats} Liste -- Complet {ContainsAll=Tous} -- Complet {TaskContentML=ramasser des chaussures noires} dans mon {ListType=to-do} Liste -- tâche complète {TaskContentML=aller faire du shopping} -- fait avec la tâche {TaskContentML=Abc} dans notre {ListType=achats} Liste -- fait avec la tâche {TaskContentML=Shopping-un} -- fait avec la tâche {TaskContentML=amidon de tapioca} dans notre {ListType=achats} Liste -- Finir {TaskContentML=Randonnées} sur mon {ListType=à faire} Liste -- Finir {TaskContentML=Arachides} sur le {ListType=achats} Liste -- Permettez-moi de cocher la {ListType=Épicerie} Liste -- Marque {TaskContentML=acheter du poisson} comme complété -- Marque {TaskContentML=Poisson} comme complet -- Marque {TaskContentML=content} Sur {ListType=à dos} Liste -- Marque {TaskContentML=citrons et oignons} Dans {ListType=Épicerie} Liste -- Marque {TaskContentML=Viande} Complet -- Marque {TaskContentML=Viande} Terminé -- Marque {TaskContentML=Viande} Fait -- Marque {TaskContentML=Viande} Fini -- Marque {TaskContentML=mélange de crêpes} sur mon {ListType=Épicerie} Liste -- Marque {TaskContentML=Arachides} sur mon {ListType=Épicerie} liste comme fait -- Marque {TaskContentML=Arachides} sur mon {ListType=Épicerie} {ListType=achats} Liste -- Marque {TaskContentML=Pick Mary up} comme terminé -- Marque {TaskContentML=ramasser du lait} sur mon {ListType=to-do} Liste -- Marque {TaskContentML=jouer au badminton avec Tom} comme terminé -- Marque {TaskContentML=Salade} sur mon {ListType=Épicerie} {ListType=achats} Liste -- Marque {TaskContentML=Salade} sur le {ListType=Épicerie} Liste -- marquer la tâche {TaskContentML=Acheter une bouteille de vinaigre} comme terminé -- marquer la tâche {TaskContentML=aller en cours d'exécution} comme terminé -- marquer la tâche {TaskContentML=lire un livre} comme fait -- marquer la première tâche comme terminée -- marquer l'élément {TaskContentML=Ordures} De {ListType=Épicier} Liste -- marquer la tâche {TaskContentML=acheter du lait} comme fait -- marquer la tâche {TaskContentML=obtenir de la nourriture} comme complet -- marquer la tâche aller {ListType=achats} comme terminé -- marquer la tâche {TaskContentML=réserver un restaurant pour le dîner de demain} comme terminé -- marquer la tâche {TaskContentML=visiter ma grand-mère} comme complété -- Réglez le {ListType=Épicerie} liste comme terminé -- définir l'élément comme terminé -- {ListType=achats} liste terminée -- {ListType=achats} liste juste fait -- Tâche {TaskContentML=ABX-d} a été fait -- tâche terminée {TaskContentML=acheter de la gomme} -- la 3ème tâche terminée -- tâche complète {TaskContentPattern} -- marquer la tâche {TaskContentPattern} comme complété -- Marque {TaskContentPattern} comme terminé -- terminer la tâche {TaskContentPattern} -- marquer la tâche {TaskContentPattern} comme terminé - - -## None - - -## ShowNextPage -- y at-il d'autres tâches -- pouvez-vous afficher la page suivante dans le {ListType=achats} Liste -- afficher la page suivante -- afficher plus de tâches -- montrer plus de travail -- afficher la feuille suivante -- afficher le site Web suivant -- dire plus de tâches - - -## ShowPreviousPage -- afficher la page précédente -- J'ai besoin de vérifier les tâches précédentes - - -## ShowToDo -- accéder à mon {ListType=achats} Liste -- accéder à mon {ListType=à faire} Liste -- accéder à la {ListType=Épicerie} Liste -- {ContainsAll=Tous} {ListType=achats} Liste -- élever {ListType=Épicerie} Notes -- élever {ListType=achats} Note -- Parcourir mon {ListType=Épicerie} -- pouvez-vous montrer mon {ListType=à faire} Liste -- vérifier ma liste de tâches -- vérifier mon {ListType=à faire} Liste -- Affichage {ContainsAll=Tous} Notes du mois dernier -- Affichage {ListType=Épicerie} Liste -- afficher les notes avec {ListType=Épicerie} -- Affichage {ListType=achats} Liste -- afficher les tâches note -- Affichage {ListType=Tous} Liste -- ai-je une liste appelée {ListType=Épicerie} Liste -- dois-je avoir des listes -- trouver la liste sur {ListType=achats} -- trouver mon {ListType=Épicerie} Articles que j'ai sauvé le samedi -- trouver mon {ListType=achats} Liste -- trouver la note étiquetée {ListType=Épicerie} -- trouver des notes appelées {ListType=Épicerie} -- trouver des notes pour {ListType=Épicerie} {ListType=achats} -- trouver des notes avec {ListType=Épicerie} -- Trouver {ListType=achats} -- trouver la liste des tâches sur {ListType=achats} -- trouver la liste que je crée pour {ListType=achats} -- trouver le {ListType=pour faire la liste} Pour moi -- obtenir des éléments de travail sur mon {ListType=Tous} Liste -- aider à accéder à ma liste personnelle -- aider à montrer mon {ListType=à faire} Liste -- Je dois voir mes tâches -- Je dois voir le {ListType=Épicerie} liste i créé aujourd'hui -- Je veux vérifier mon {ListType=achats} Liste -- Je veux voir {ListType=Épicerie} Liste -- y at-il quelque chose sur mon {ListType=à faire} Liste -- Liste {ListType=Épicerie} Notes -- Regardez mon {ListType=Épicerie} Liste -- Tirer {ListType=Épicerie} Liste -- Tirez vers le haut {ListType=Épicier} Liste -- Tirez vers le haut {ListType=Épicerie} Liste -- Tirez mon {ListType=Épicerie} Liste -- Tirez mes notes -- Tirez vers le haut {ListType=à faire} Liste -- lire à haute voix mon {ListType=Épicerie} Liste -- lire mes tâches -- Examen {ListType=Épicerie} Liste -- {ListType=achats} Liste -- Montre-moi {ContainsAll=Tous} Tâches -- montrer mon {ListType=à faire} Liste -- montrer mon {ListType=à dos} -- montrer mon {ListType=Tous} -- Voir mon {ListType=Épicerie} Liste -- Vue {ListType=achats} Liste -- Qu'en est-il de {ListType=Épicerie} Liste -- Quelles sont mes notes pour le {ListType=Épicerie} boutique -- Quelles sont mes tâches pour {ListType=Tous} -- qu'est-ce que je dois acheter sur le {ListType=achats} Liste -- qu'est-ce que je dois acheter dans le {ListType=achats} Liste -- ce qui est sur mon {ListType=achats} Liste -- où est le {ListType=Épicerie} {ListType=achats} Notes j'ai travaillé sur la nuit dernière -- voulez-vous mettre en place mon nouveau {ListType=Épicerie} Notes - - -> # Entity definitions - -$ContainsAll:simple - -$ListType:simple - -$TaskContentML:simple - - -> # PREBUILT Entity definitions - -$PREBUILT:number - -$PREBUILT:ordinal - - -> # Phrase list definitions - - -> # List entities - -$FoodOfGrocery:air freshener= - -$FoodOfGrocery:apple= -- Pommes - -$FoodOfGrocery:bacon= - -$FoodOfGrocery:bagel= - -$FoodOfGrocery:bagels= - -$FoodOfGrocery:banana= -- Bananes - -$FoodOfGrocery:beans= - -$FoodOfGrocery:beverages= - -$FoodOfGrocery:bread= - -$FoodOfGrocery:buns= - -$FoodOfGrocery:burgers= - -$FoodOfGrocery:butter= - -$FoodOfGrocery:carrot= -- Carottes - -$FoodOfGrocery:celery= - -$FoodOfGrocery:cereal= - -$FoodOfGrocery:cheese= - -$FoodOfGrocery:chicken= - -$FoodOfGrocery:chili= - -$FoodOfGrocery:chips= - -$FoodOfGrocery:chocolate= -- Chocolats - -$FoodOfGrocery:chocolate chip= -- copeaux de Chocoloate - -$FoodOfGrocery:chops= - -$FoodOfGrocery:cloves= - -$FoodOfGrocery:coffee= - -$FoodOfGrocery:corn= - -$FoodOfGrocery:crispy= - -$FoodOfGrocery:croissant= -- croissants - -$FoodOfGrocery:cupcakes= - -$FoodOfGrocery:dairy= - -$FoodOfGrocery:dishwashing detergent= - -$FoodOfGrocery:donuts= - -$FoodOfGrocery:drinks= - -$FoodOfGrocery:duck= - -$FoodOfGrocery:egg= -- Oeufs - -$FoodOfGrocery:flour= - -$FoodOfGrocery:fries= - -$FoodOfGrocery:frozen food= - -$FoodOfGrocery:fruit= -- fruits - -$FoodOfGrocery:garbage bag= -- sacs poubelle - -$FoodOfGrocery:garlic= - -$FoodOfGrocery:grilled= - -$FoodOfGrocery:ham= - -$FoodOfGrocery:hamburger= - -$FoodOfGrocery:ice cream= - -$FoodOfGrocery:jam= - -$FoodOfGrocery:lamb= - -$FoodOfGrocery:laundry detergent= - -$FoodOfGrocery:lemon= -- Citrons - -$FoodOfGrocery:lettuce= - -$FoodOfGrocery:lettuce and salad= -- Salade -- Salades - -$FoodOfGrocery:lobster= - -$FoodOfGrocery:marinated= - -$FoodOfGrocery:meat= - -$FoodOfGrocery:meatballs= - -$FoodOfGrocery:meatloaf= - -$FoodOfGrocery:milk= - -$FoodOfGrocery:onion= -- Oignons - -$FoodOfGrocery:oysters= - -$FoodOfGrocery:pancake mix= - -$FoodOfGrocery:pancakes= - -$FoodOfGrocery:pasta= - -$FoodOfGrocery:pastry= -- Pâtisseries - -$FoodOfGrocery:pear= -- Poires - -$FoodOfGrocery:pepper= - -$FoodOfGrocery:pie= -- Pieds - -$FoodOfGrocery:pita= - -$FoodOfGrocery:potato= -- Patates - -$FoodOfGrocery:poultry= - -$FoodOfGrocery:ribs= - -$FoodOfGrocery:rice= - -$FoodOfGrocery:roast= - -$FoodOfGrocery:rolls= - -$FoodOfGrocery:salads= - -$FoodOfGrocery:salmon= - -$FoodOfGrocery:salt= - -$FoodOfGrocery:sandwich= - -$FoodOfGrocery:sauce= - -$FoodOfGrocery:sausage= -- Saucisses - -$FoodOfGrocery:scones= - -$FoodOfGrocery:shellfish= - -$FoodOfGrocery:shrimp= - -$FoodOfGrocery:snacks= - -$FoodOfGrocery:sour cream= - -$FoodOfGrocery:steak= - -$FoodOfGrocery:strawberries= - -$FoodOfGrocery:sugar= - -$FoodOfGrocery:sushi= - -$FoodOfGrocery:sweets= - -$FoodOfGrocery:tenderloin= - -$FoodOfGrocery:tomato= -- Tomates - -$FoodOfGrocery:toothpaste= - -$FoodOfGrocery:tortilla= - -$FoodOfGrocery:tuna= - -$FoodOfGrocery:turkey= - -$FoodOfGrocery:veal= - -$FoodOfGrocery:vegetable= -- Légumes - -$FoodOfGrocery:venison= - -$FoodOfGrocery:waffles= - -$FoodOfGrocery:yoghurt= - -$FoodOfGrocery:fish= - - - -$ShopVerb:buy= -- Acheté -- Achète -- Acheter - -$ShopVerb:purchase= -- Achats - -$ShopVerb:shop= -- Magasins - - - - diff --git a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/CognitiveModels/LUIS/it/todo.lu b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/CognitiveModels/LUIS/it/todo.lu deleted file mode 100644 index d1a32a6731..0000000000 --- a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/CognitiveModels/LUIS/it/todo.lu +++ /dev/null @@ -1,591 +0,0 @@ -> ! Automatically generated by [LUDown CLI](https://github.com/Microsoft/botbuilder-tools/tree/master/Ludown), Tue Feb 26 2019 14:04:06 GMT+0800 (China Standard Time) - -> ! Source LUIS JSON file: todo.json - -> ! Source QnA TSV file: Not Specified - -> ! Source QnA Alterations file: Not Specified - - -> # Intent definitions - -## AddToDo -- aggiungere alcuni elementi al {ListType=Alimentari} Elenco -- aggiungere un {ListType=Alimentari} elemento per {TaskContentML=comprare pesce} -- aggiungere un {ListType=Alimentari} elemento per {TaskContentML=acquistare frutta e verdura} -- aggiungere un {ListType=Alimentari} elemento per {TaskContentML=comprare verdure} -- aggiungere un nuovo {ListType=Shopping} Elenco -- aggiungere un {ListType=Shopping} elemento per {TaskContentML=comprare abiti da ballo} -- aggiungere un {ListType=Shopping} elemento per {TaskContentML=comprare succo d'arancia} -- aggiungere un'attività per {TaskContentML=Anna ovest portare il mio costume da bagno per la mia vacanza} -- aggiungere un'attività per {TaskContentML=Jimmy per giocare giochi Xbox con me dopo il lavoro} -- aggiungere un'attività per {TaskContentML=li lei per portare il mio cappotto da casa} -- aggiungere un'attività per {TaskContentML=Raghu per portare i miei cioccolatini dalla Germania} -- aggiungere un'attività {TaskContentML=pasta domenica 3 marzo} -- aggiungere un'attività che {TaskContentML=acquistare frutta e verdura} -- aggiungere un'attività per {TaskContentML=terminare la prova di guida questa settimana} -- aggiungere un'attività per {TaskContentML=Pick Mary up dopo il lavoro} -- aggiungere un'attività per {TaskContentML=negozio a GNC dopo il lavoro} -- aggiungere un {ListType=da fare} quella {TaskContentML=acquistare un bel maglione} -- aggiungere un {ListType=da fare} A {TaskContentML=comprare scarpe} -- aggiungere un {ListType=Tutti} Elemento {TaskContentML=aspirazione entro il 3 ottobre} -- Aggiungi elemento azione per {TaskContentML=Khalifa che imballare la mia scuola forniture} nella mia lista -- aggiungere un elemento per {TaskContentML=acquistare alcuni spuntini} -- aggiungere un compito di {TaskContentML=falle di fare intorno alla casa} -- Aggiungere {TaskContentML=i bronwnies} al {ListType=Alimentari} Elenco -- Aggiungere {TaskContentML=comprare gomma} -- Aggiungere {TaskContentML=acquistare latte} al mio {ListType=Shopping} Elenco -- Aggiungere {TaskContentML=chiamare mia madre} al mio {ListType=Tutti} Elenco -- Aggiungere {TaskContentML=Data di scadenza agosto al burro di arachidi gelatina di pane latte} sul {ListType=Tutti} Elenco -- Aggiungere {TaskContentML=andare in esecuzione} al mio {ListType=a DOS} -- Aggiungere {TaskContentML=andare a cibi interi} nel mio {ListType=da fare} Elenco -- Aggiungere {ListType=Alimentari} Aggiungere {TaskContentML=Spinaci} Mio {ListType=Generi alimentari} Elenco -- Aggiungere {ListType=Alimentari} Elementi {TaskContentML=crema di formaggio e uva passa} all'elenco -- Aggiungere {ListType=Alimentari} Elementi {TaskContentML=cene e custodia} al {ListType=Shopping} Elenco -- Aggiungere {TaskContentML=hanno un taglio di capelli} ai miei compiti -- aggiungere elementi mentre parlo -- Aggiungere {TaskContentML=Spremiagrumi} {ListType=Generi alimentari} Elenco -- Aggiungere {TaskContentML=melone e zuccheri e zucchero di canna} A {ListType=Shopping} Elenco -- aggiungere di più per {ListType=Alimentari} Elenco -- Aggiungere {TaskContentML=Arachidi} Le {ListType=Alimentari} Elenco -- Aggiungere {TaskContentML=acquistare un biglietto cinema} alla mia lista -- Aggiungere {TaskContentML=acquisto di cibi e bevande} al mio {ListType=Shopping} Elenco -- Aggiungere {TaskContentML=Lettura} al mio {ListType=da fare} Elenco -- Aggiungere {TaskContentML=Scarpe} al {ListType=Shopping} Elenchi -- aggiungere alcuni elementi a tale {ListType=Shopping} Note -- aggiungere alcuni {TaskContentML=Jeans} sul nostro {ListType=Shopping} Elenchi -- aggiungere qualcosa in questo {ListType=Alimentari} Elenco -- aggiungere qualcosa alla mia lista -- Aggiungere {TaskContentML=amido di tapioca} sul mio {ListType=Shopping} Elenco -- Aggiungere {TaskContentML=amido di tapioca} sul nostro {ListType=Shopping} Elenco -- aggiungere attività per {TaskContentML=comprare un cappotto} -- aggiungere attività per {TaskContentML=impostare tavolo sala da pranzo} -- Aggiungere questo {TaskContentML=i miei 2017 gol} nella mia lista -- Aggiungere questo sul nostro {ListType=Shopping} Elenco -- aggiungere questa roba sul mio {ListType=Shopping} Elenco -- aggiungere questa cosa in {ListType=da fare} Elenco -- aggiungere al mio {ListType=Alimentari} Elenco -- aggiungere al mio {ListType=da fare} Elenco {TaskContentML=pick up vestiti} -- aggiungere al mio {ListType=da fare} Elenco {TaskContentML=stampa di carte per 10 copie di questo pomeriggio} -- aggiungere al mio {ListType=Tutti} Elenco {TaskContentML=posta l'assicurazione forma fuori da sabato} -- aggiungere alla nota {ListType=Shopping} Elenco -- aggiungere a {ListType=Shopping} Elenco -- aggiungere al {ListType=Alimentari} Nota {TaskContentML=acquistare latte} -- aggiungere un {TaskContentML=lettura estiva} nella mia lista -- aggiungere un compito di {TaskContentML=ospite di invitare alla festa} -- Chiedere un compito per {TaskContentML=Kim per portare il mio cappotto da casa} -- Posso aggiungere {TaskContentML=Camicie} sul {ListType=Tutti} Elenco -- Posso mettere su {TaskContentML=popcorn al formaggio caramello} sul mio {ListType=Alimentari} Elenco -- Potrei aggiungere {TaskContentML=Medicina} al {ListType=Tutti} Elenco -- creare un'attività per {TaskContentML=incontrare i miei amici} -- creare un compito che {TaskContentML=andare al centro commerciale} -- creare un compito che {TaskContentML=incontrare John dopo 5:00 p.m.} -- creare attività per {TaskContentML=Cyber shopping su Nov. 11} -- creare per farlo {TaskContentML=leggere un libro stasera} -- creare per fare per {TaskContentML=andare in esecuzione nel parco} -- Mettere {TaskContentML=Formaggio} sulla lista -- Mettere {TaskContentML=Lui} sul mio {ListType=Shopping} Elenco -- Mettere {TaskContentML=Escursioni} sul mio {ListType=da fare} Elenco -- Mettere {TaskContentML=Gelato} sul {ListType=Generi alimentari} Elenco -- Mettere {TaskContentML=Latte} sul mio {ListType=Alimentari} Elenco -- Mettere {TaskContentML=su popcorn al formaggio caramello} sul mio {ListType=Spesa} Elenco -- ricordarmi che {TaskContentML=partecipare alla riunione di domani} -- ricordarmi di {TaskContentML=acquistare creme e bacche di primo soccorso} -- ricordarmi di {TaskContentML=acquistare latte} -- ricordarmi di {TaskContentML=incontrare il mio insegnante} -- ricordarmi di fare acquisti per {TaskContentML=un nuovo tappeto} -- A {ListType=Alimentari} Aggiungi elenco {TaskContentML=Latte} -- al mio {ListType=Shopping} Aggiungi elenco {TaskContentML=asciugamani di carta} -- alla mia vacanza {ListType=da fare} Aggiungi elenco {TaskContentML=comprare crema solare} -- aggiungerebbe {TaskContentML=Panna} al {ListType=Tutti} Elenco -- aggiungere un'attività per {TaskContentPattern} -- creare per fare per {TaskContentPattern} -- ricordarmi che {TaskContentPattern} -- creare un'attività per {TaskContentPattern} -- aggiungere per farlo {TaskContentPattern} -- ricordarmi di acquistare {ShopContent} -- creare una da fare per {TaskContentPattern} -- Aggiungere {TaskContentPattern} alla mia lista della spesa -- aggiungere una per fare che l'acquisto {ShopContent} -- aggiungere acquistare {ShopContent} alla mia lista della spesa -- Ricordami di fare acquisti {ShopContent} -- ricordarmi di {TaskContentPattern} -- aggiungere a fare quel negozio {ShopContent} -- Aggiungere {TaskContentPattern} al mio a DOS -- aggiungere attività per {TaskContentPattern} -- aggiungere un'attività che acquista {ShopContent} -- Aggiungere {TaskContentPattern} alla mia lista todo -- creare attività per {TaskContentPattern} -- Aggiungere {TaskContentPattern} ai miei compiti -- aggiungere a fare per {TaskContentPattern} -- aggiungere una per fare che acquistare {ShopContent} -- aggiungere una da fare per {TaskContentPattern} -- aggiungere un'attività per fare acquisti {ShopContent} -- Aggiungere {TaskContentPattern} alla mia lista di fare - - -## DeleteToDo -- è possibile eliminare {TaskContentML=todo1} -- è possibile eliminare {TaskContentML=Xxx} Elemento -- si può aiutare a rimuovere {ContainsAll=Tutti} Attività -- Annulla {TaskContentML=Mele} Da {ListType=Shopping} Elenco -- Elimina {ContainsAll=Tutti} dal mio {ListType=Alimentari} Elenco -- Elimina {TaskContentML=Uova} dalla lista -- eliminare {TaskContentML=pancake mix} sul {ListType=Shopping} Elenco -- Elimina {TaskContentML=Shampoo} Da {ListType=Shopping} Elenco -- Elimina {TaskContentML=Camicie} dalla lista -- Task di eliminazione {TaskContentML=andare a pescare} -- Task di eliminazione {TaskContentML=andare al cinema stasera} -- eliminare l'elemento {TaskContentML=comprare calzini} dal mio {ListType=Attività} Elenco -- eliminare la seconda attività nel mio {ListType=Shopping} Elenco -- eliminare l'attività {TaskContentML=pulizia della casa questo fine settimana} -- eliminare l'attività che {TaskContentML=colpire la palestra ogni mattina} -- eliminare il da fare {TaskContentML=incontrare i miei amici domani} -- eliminare il per farlo {TaskContentML=quotidiano pratica pianoforte} -- eliminare il per farlo {TaskContentML=incontrare John quando viene qui il prossimo venerdì} -- eliminare per fare {TaskContentML=acquistare latte} -- eliminare per fare {TaskContentML=andare a fare shopping} -- eliminare per farlo {TaskContentML=fare escursioni domani} -- Cancellare {TaskContentML=Banane} Da {ListType=Shopping} Elenco -- Cancellare {TaskContentML=Arachidi} sul {ListType=Shopping} Elenco -- non c'è bisogno di {TaskContentML=acquistare latte} Pollici {ListType=Alimentari} Elenco -- omettere il {TaskContentML=Latte} Nel {ListType=Alimentari} Elenco -- Rimuovere {ContainsAll=Tutti} -- Rimuovere {ContainsAll=Tutti} Attività -- Rimuovere {TaskContentML=Asprin} Da {ListType=Shopping} Elenco -- Rimuovere {TaskContentML=scarpe nere} Da {ListType=Shopping} Elenco -- Rimuovere {TaskContentML=Classe} Da {ListType=Tutti} Elenco -- Rimuovere {TaskContentML=insalata verdure} Da {ListType=Alimentari} Elenco -- Rimuovi attività {TaskContentML=comprare cibo per cani} -- Rimuovi attività {TaskContentML=andare a fare shopping} -- rimuovere l'attività che {TaskContentML=fare escursioni questo fine settimana} -- rimuovere l'attività che {TaskContentML=falciatura prato} -- rimuovere l'elemento {TaskContentML=Parigi} dalla mia lista -- rimuovere l'attività che {TaskContentML=Vai alla libreria dopo il lavoro} -- rimuovere il da fare {TaskContentML=esame fisico} -- rimuovere il per farlo {TaskContentML=Pick Tom fino alle sei p.m.} -- rimuovere per fare {TaskContentML=andare in palestra} -- rimuovere per farlo {TaskContentML=andare al dentista domani mattina} -- {ListType=Shopping} lista Delete {TaskContentML=Un} -- {ListType=Shopping} lista Delete {TaskContentML=cibo per cani} -- {ListType=Shopping} lista Delete {TaskContentML=Uova} -- {ListType=Shopping} lista Delete {TaskContentML=Latte} -- Prendere {TaskContentML=Caffè} fuori il mio {ListType=Generi alimentari} Elenco -- Prendere {TaskContentML=limoni e cipolle} fuori il mio {ListType=Shopping} Elenco -- Prendere {TaskContentML=Latte} Fuori {ListType=Alimentari} Elenco -- Prendere {TaskContentML=calzini e scarpe} fuori il mio {ListType=Shopping} Elenco -- {ListType=Tutti} lista Delete {TaskContentML=Parigi vacanza} -- rimuovere per fare {TaskContentPattern} -- eliminare il per farlo {TaskContentPattern} -- Task di eliminazione {TaskContentPattern} -- rimuovere l'attività {TaskContentPattern} -- rimuovere il da fare {TaskContentPattern} -- eliminare il da fare {TaskContentPattern} -- eliminare per fare {TaskContentPattern} -- eliminare l'attività {TaskContentPattern} - - -## MarkToDo -- {ContainsAll=Tutti} sono stati fatti -- {ContainsAll=Tutti} sono stati acquistati nel {ListType=Shopping} Elenco -- già completare la {ListType=Shopping} elementi nell'elenco -- Check off {TaskContentML=Mele} dalla lista -- Check off {TaskContentML=Banane} dal mio {ListType=Alimentari} Elenco -- Check off {TaskContentML=Spazzatura} Da {ListType=Droghiere} Elenco -- Check off {TaskContentML=incontrare John alle 8 del mattino} Da {ListType=da fare} Elenco -- Check off {TaskContentML=Shampoo} Da {ListType=Shopping} lista come fatto -- Selezionare la casella {TaskContentML=Shampoo} nel mio {ListType=Shopping} Elenco -- Completo {ContainsAll=Tutti} -- Completo {TaskContentML=pick up nero scarpe} nel mio {ListType=Attività} Elenco -- compito completo {TaskContentML=andare a fare shopping} -- fatto con il compito {TaskContentML=Abc} nel nostro {ListType=Shopping} Elenco -- fatto con il compito {TaskContentML=shopping-a} -- fatto con il compito {TaskContentML=amido di tapioca} nel nostro {ListType=Shopping} Elenco -- Finire {TaskContentML=Escursioni} sul mio {ListType=da fare} Elenco -- Finire {TaskContentML=Arachidi} sul {ListType=Shopping} Elenco -- Fammi controllare il {ListType=Generi alimentari} Elenco -- Segno {TaskContentML=comprare pesce} come completato -- Segno {TaskContentML=Pesce} come completo -- Segno {TaskContentML=Felice} sul {ListType=a DOS} Elenco -- Segno {TaskContentML=limoni e cipolle} Pollici {ListType=Alimentari} Elenco -- Segno {TaskContentML=Carne} Completo -- Segno {TaskContentML=Carne} Completato -- Segno {TaskContentML=Carne} Fatto -- Segno {TaskContentML=Carne} Finito -- Segno {TaskContentML=pancake mix} sul mio {ListType=Spesa} Elenco -- Segno {TaskContentML=Arachidi} sul mio {ListType=Alimentari} lista come fatto -- Segno {TaskContentML=Arachidi} sul mio {ListType=Alimentari} {ListType=Shopping} Elenco -- Segno {TaskContentML=Pick Mary up} finito -- Segno {TaskContentML=raccogliere il latte} sul mio {ListType=Attività} Elenco -- Segno {TaskContentML=giocare a badminton con Tom} finito -- Segno {TaskContentML=Insalata} sul mio {ListType=Alimentari} {ListType=Shopping} Elenco -- Segno {TaskContentML=Insalata} sul {ListType=Generi alimentari} Elenco -- Contrassegna attività {TaskContentML=comprare una bottiglia di aceto} finito -- Contrassegna attività {TaskContentML=andare in esecuzione} finito -- Contrassegna attività {TaskContentML=leggere un libro} come fatto -- contrassegnare la prima attività come completata -- contrassegnare l'elemento {TaskContentML=Spazzatura} Da {ListType=Droghiere} Elenco -- contrassegnare l'attività {TaskContentML=acquistare latte} come fatto -- contrassegnare l'attività {TaskContentML=ottenere un po' di cibo} come completo -- contrassegnare l'attività andare {ListType=Shopping} finito -- contrassegnare l'attività {TaskContentML=prenotare un ristorante per la cena di domani} finito -- contrassegnare l'attività {TaskContentML=visita mia nonna} come completato -- impostare il {ListType=Alimentari} elenco finito -- impostare l'elemento come finito -- {ListType=Shopping} lista completata -- {ListType=Shopping} lista appena fatto -- Attività {TaskContentML=ABX-d} è stato fatto -- attività completata {TaskContentML=comprare gomma} -- la 3a operazione terminata -- compito completo {TaskContentPattern} -- contrassegnare l'attività {TaskContentPattern} come completato -- Segno {TaskContentPattern} finito -- completare il compito {TaskContentPattern} -- Contrassegna attività {TaskContentPattern} finito -- contrassegnare l'attività {TaskContentPattern} finito - - -## None - - -## ShowNextPage -- Ci sono altri compiti -- è possibile visualizzare la pagina successiva nel {ListType=Shopping} Elenco -- visualizzare la pagina successiva -- Mostra più attività -- Mostra più lavoro -- Mostra pagina successiva -- Mostra foglio successivo -- Mostra il prossimo sito Web -- raccontare più compiti - - -## ShowPreviousPage -- visualizzare la pagina precedente -- Ho bisogno di controllare le attività precedenti -- Mostra pagina precedente - - -## ShowToDo -- accedere al mio {ListType=Shopping} Elenco -- accedere al mio {ListType=da fare} Elenco -- accedere al {ListType=Generi alimentari} Elenco -- {ContainsAll=Tutti} {ListType=Shopping} Elenco -- richiamare {ListType=Alimentari} Note -- richiamare {ListType=Shopping} Nota -- sfogliare il mio {ListType=Generi alimentari} -- si può mostrare il mio {ListType=da fare} Elenco -- controllare la mia lista di attività -- controllare il mio {ListType=da fare} Elenco -- Visualizzazione {ContainsAll=Tutti} Note del mese scorso -- Visualizzazione {ListType=Generi alimentari} Elenco -- visualizzare le note con {ListType=Generi alimentari} -- Visualizzazione {ListType=Shopping} Elenco -- visualizzare le attività nota -- Visualizzazione {ListType=Tutti} Elenco -- Ho una lista chiamata {ListType=Alimentari} Elenco -- Ho liste -- trovare l'elenco {ListType=Shopping} -- trovare il mio {ListType=Alimentari} articoli che ho salvato il sabato -- trovare il mio {ListType=Shopping} Elenco -- trova nota etichettata {ListType=Alimentari} -- trovare note chiamate {ListType=Alimentari} -- trovare note per {ListType=Alimentari} {ListType=Shopping} -- trovare note con {ListType=Generi alimentari} -- Trovare {ListType=Shopping} -- trovare l'elenco di attività su {ListType=Shopping} -- trovare l'elenco che creo per {ListType=Shopping} -- trovare il {ListType=per fare la lista} Per me -- ottenere elementi di lavoro sul mio {ListType=Tutti} Elenco -- aiutare ad accedere alla mia lista personale -- aiutare a mostrare il mio {ListType=da fare} Elenco -- Devo vedere i miei compiti -- Devo vedere il {ListType=Alimentari} lista ho creato oggi -- Voglio controllare il mio {ListType=Shopping} Elenco -- Voglio vedere {ListType=Alimentari} Elenco -- C'è qualcosa sul mio {ListType=da fare} Elenco -- Elenco {ListType=Alimentari} Note -- guardare il mio {ListType=Alimentari} Elenco -- Tirare {ListType=Alimentari} Elenco -- tirare su {ListType=Droghiere} Elenco -- tirare su {ListType=Alimentari} Elenco -- tirare su il mio {ListType=Alimentari} Elenco -- tirare su le mie note -- tirare su {ListType=da fare} Elenco -- leggere ad alta voce il mio {ListType=Alimentari} Elenco -- leggere i miei compiti -- Recensione {ListType=Alimentari} Elenco -- {ListType=Shopping} Elenco -- Fammi vedere {ContainsAll=Tutti} Attività -- mostrare il mio {ListType=da fare} Elenco -- mostrare il mio {ListType=a DOS} -- mostrare il mio {ListType=Tutti} -- visualizzare il mio {ListType=Alimentari} Elenco -- Mostra {ListType=Shopping} Elenco -- E {ListType=Alimentari} Elenco -- quali sono i miei appunti per il {ListType=Alimentari} Negozio -- quali sono i miei compiti per {ListType=Tutti} -- cosa devo comprare sul {ListType=Shopping} Elenco -- cosa ho bisogno di acquistare nel {ListType=Shopping} Elenco -- ciò che è sul mio {ListType=Shopping} Elenco -- dove è il {ListType=Alimentari} {ListType=Shopping} note ho lavorato la scorsa notte -- Vorresti portare il mio nuovo {ListType=Alimentari} Note - - -> # Entity definitions - -$ContainsAll:simple - -$ListType:simple - -$TaskContentML:simple - - -> # PREBUILT Entity definitions - -$PREBUILT:number - -$PREBUILT:ordinal - - -> # Phrase list definitions - - -> # List entities - -$FoodOfGrocery:air freshener= - -$FoodOfGrocery:apple= -- Mele - -$FoodOfGrocery:bacon= - -$FoodOfGrocery:bagel= - -$FoodOfGrocery:bagels= - -$FoodOfGrocery:banana= -- Banane - -$FoodOfGrocery:beans= - -$FoodOfGrocery:beverages= - -$FoodOfGrocery:bread= - -$FoodOfGrocery:buns= - -$FoodOfGrocery:burgers= - -$FoodOfGrocery:butter= - -$FoodOfGrocery:carrot= -- Carote - -$FoodOfGrocery:celery= - -$FoodOfGrocery:cereal= - -$FoodOfGrocery:cheese= - -$FoodOfGrocery:chicken= - -$FoodOfGrocery:chili= - -$FoodOfGrocery:chips= - -$FoodOfGrocery:chocolate= -- Cioccolatini - -$FoodOfGrocery:chocolate chip= -- chip di chocoloato - -$FoodOfGrocery:chops= - -$FoodOfGrocery:cloves= - -$FoodOfGrocery:coffee= - -$FoodOfGrocery:corn= - -$FoodOfGrocery:crispy= - -$FoodOfGrocery:croissant= -- Croissant - -$FoodOfGrocery:cupcakes= - -$FoodOfGrocery:dairy= - -$FoodOfGrocery:dishwashing detergent= - -$FoodOfGrocery:donuts= - -$FoodOfGrocery:drinks= - -$FoodOfGrocery:duck= - -$FoodOfGrocery:egg= -- Uova - -$FoodOfGrocery:flour= - -$FoodOfGrocery:fries= - -$FoodOfGrocery:frozen food= - -$FoodOfGrocery:fruit= -- Frutta - -$FoodOfGrocery:garbage bag= -- sacchetti di spazzatura - -$FoodOfGrocery:garlic= - -$FoodOfGrocery:grilled= - -$FoodOfGrocery:ham= - -$FoodOfGrocery:hamburger= - -$FoodOfGrocery:ice cream= - -$FoodOfGrocery:jam= - -$FoodOfGrocery:lamb= - -$FoodOfGrocery:laundry detergent= - -$FoodOfGrocery:lemon= -- Limoni - -$FoodOfGrocery:lettuce= - -$FoodOfGrocery:lettuce and salad= -- Insalata -- Insalate - -$FoodOfGrocery:lobster= - -$FoodOfGrocery:marinated= - -$FoodOfGrocery:meat= - -$FoodOfGrocery:meatballs= - -$FoodOfGrocery:meatloaf= - -$FoodOfGrocery:milk= - -$FoodOfGrocery:onion= -- Cipolle - -$FoodOfGrocery:oysters= - -$FoodOfGrocery:pancake mix= - -$FoodOfGrocery:pancakes= - -$FoodOfGrocery:pasta= - -$FoodOfGrocery:pastry= -- Dolci - -$FoodOfGrocery:pear= -- Pere - -$FoodOfGrocery:pepper= - -$FoodOfGrocery:pie= -- Piedi - -$FoodOfGrocery:pita= - -$FoodOfGrocery:potato= -- Patate - -$FoodOfGrocery:poultry= - -$FoodOfGrocery:ribs= - -$FoodOfGrocery:rice= - -$FoodOfGrocery:roast= - -$FoodOfGrocery:rolls= - -$FoodOfGrocery:salads= - -$FoodOfGrocery:salmon= - -$FoodOfGrocery:salt= - -$FoodOfGrocery:sandwich= - -$FoodOfGrocery:sauce= - -$FoodOfGrocery:sausage= -- Salsicce - -$FoodOfGrocery:scones= - -$FoodOfGrocery:shellfish= - -$FoodOfGrocery:shrimp= - -$FoodOfGrocery:snacks= - -$FoodOfGrocery:sour cream= - -$FoodOfGrocery:steak= - -$FoodOfGrocery:strawberries= - -$FoodOfGrocery:sugar= - -$FoodOfGrocery:sushi= - -$FoodOfGrocery:sweets= - -$FoodOfGrocery:tenderloin= - -$FoodOfGrocery:tomato= -- Pomodori - -$FoodOfGrocery:toothpaste= - -$FoodOfGrocery:tortilla= - -$FoodOfGrocery:tuna= - -$FoodOfGrocery:turkey= - -$FoodOfGrocery:veal= - -$FoodOfGrocery:vegetable= -- Verdure - -$FoodOfGrocery:venison= - -$FoodOfGrocery:waffles= - -$FoodOfGrocery:yoghurt= - -$FoodOfGrocery:fish= - - - -$ShopVerb:buy= -- Comprato -- Compra -- Acquisto - -$ShopVerb:purchase= -- Acquisti - -$ShopVerb:shop= -- Negozi - - - - diff --git a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/CognitiveModels/LUIS/zh/todo.lu b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/CognitiveModels/LUIS/zh/todo.lu deleted file mode 100644 index 6250ab8009..0000000000 --- a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/CognitiveModels/LUIS/zh/todo.lu +++ /dev/null @@ -1,431 +0,0 @@ -> ! Automatically generated by [LUDown CLI](https://github.com/Microsoft/botbuilder-tools/tree/master/Ludown), Tue Feb 26 2019 16:45:47 GMT+0800 (China Standard Time) - -> ! Source LUIS JSON file: todo.json - -> ! Source QnA TSV file: Not Specified - -> ! Source QnA Alterations file: Not Specified - - -> # Intent definitions - -## AddToDo -- {TaskContentML=买药}这一项添加到{ListType=待办事项}中 -- 任务列表添加{TaskContentML=徒步旅行} -- 创建一个{TaskContentML=去商场}的任务 -- 创建备忘录,{TaskContentML=去商店买新地毯} -- 创建备忘录,提醒我去{TaskContentML=游泳} -- 创建{ListType=食品购买}清单,提醒我{TaskContentML=买吃的东西} -- 加一个{ListType=待办事项},{TaskContentML=买鞋} -- 加一个{ListType=待办事项}“{TaskContentML=11月11日网购}”,到我的备忘录中 -- 加到{ListType=食品购物}清单 -- 可以把{TaskContentML=焦糖奶酪爆米花}添加到我的{ListType=食品购物}清单里吗 -- 咱们{ListType=购物}单里加一下这个 -- 在{ListType=购物}列表里加上{TaskContentML=纸巾} -- 在{ListType=食品购物}清单里把{TaskContentML=牛奶}加上 -- 在{ListType=食品购物}清单里面添加{TaskContentML=饼干} -- 备忘录中记录一下,{TaskContentML=我要去游泳} -- 备忘录增加{TaskContentML=曼谷} -- 备忘录记录以下任务,{TaskContentML=明天我要去看小明。} -- 备忘录里添加一些项目 -- 备忘录里记一下,{TaskContentML=下午打球} -- 备忘录里记一下,{TaskContentML=整理衣服、床单和打扫家里的卫生} -- 备忘录里记录:{TaskContentML=买电影票} -- {TaskContentML=奶酪}加到{ListType=食品购物}清单中 -- 将{TaskContentML=奶油,芝士和葡萄干}加到{ListType=食品购物}单 -- 将{TaskContentML=菠菜}加入到{ListType=食品购物}单中 -- {ListType=待办事项} -- {ListType=待办事项}里添加{TaskContentML=去跑步} -- {ListType=待处理事项} -- {ListType=待完成事项}里加一下,{TaskContentML=今天下午打印10份论文} -- 我想{TaskContentML=买花生},帮我添加到{ListType=食品购物}单中 -- {TaskContentML=扫地}也添加到备忘录中 -- 把“{TaskContentML=anna west 给我拿假期的泳衣}”加到{ListType=待办事项}里 -- 把“{TaskContentML=为明天下午3点的会议打印10份会议资料}”添到{ListType=待处理事项}中 -- 把{TaskContentML=10月3日前用吸尘器清扫}添加到{ListType=待办事项} -- 把{TaskContentML=khalifa帮我打包学校用品}加到备忘录里 -- 把{TaskContentML=买胶}加到备忘录 -- 把{TaskContentML=买防晒霜}加到假期{ListType=待准备事项}里 -- 把{TaskContentML=买食物和饮料}添加到{ListType=购物}单 -- 把{TaskContentML=今天晚上读书}添加到任务里 -- 把{TaskContentML=和朋友见面}添加到任务列表 -- 把它加到{ListType=待完成事项}里 -- 把{TaskContentML=待洗的衣服}加到{ListType=待办事项}里 -- 把{TaskContentML=截止日期为8月的花生酱果冻面包牛奶}添加到{ListType=待办事项} -- 把{TaskContentML=明天的会议}添加到我的备忘录 -- 把{TaskContentML=明天的会议}添加到我的提醒里 -- 把{TaskContentML=暑假阅读}加到备忘录 -- 把{TaskContentML=木薯淀粉}添到我的{ListType=购物}单 -- 把{TaskContentML=木薯淀粉}添加到我们的{ListType=购物}清单 -- 把{TaskContentML=榨汁机}到{ListType=杂货}清单 -- 把{TaskContentML=火腿}放{ListType=购物}清单里面 -- 把{TaskContentML=牛仔裤}添加到咱{ListType=购物}单里 -- 把{TaskContentML=牛奶}加到{ListType=食品购物}清单里 -- 把{TaskContentML=甜瓜糖和红糖}添加到{ListType=购物}清单 -- 把这个{TaskContentML=我的2017年目标}加到备忘录里 -- 把{TaskContentML=这周完成驾照考试}添到任务中 -- 把{TaskContentML=阅读}添加到我的{ListType=待办事项} -- {TaskContentML=按时锻炼},请加到备忘录中 -- 提醒我去{TaskContentML=买急救面霜和浆果} -- 添加一个{TaskContentML=买外套}的任务 -- 添加一个{TaskContentML=买水果和蔬菜}的任务 -- 添加一个任务,{TaskContentML=去公园跑步} -- 添加一个{ListType=待办事项}“{TaskContentML=买一件漂亮的毛衣}” -- 添加一个新的{ListType=购物}清单 -- 添加一些事项到{ListType=食品购物}单 -- 添加一项{TaskContentML=买鱼}到{ListType=食品购物}单 -- 添加下一个任务,{TaskContentML=家务} -- 添加个任务,{TaskContentML=组装餐桌} -- 添加任务“{TaskContentML=记录我最喜欢的音乐}” -- 添加到{ListType=购物}单 -- 添加我说的项目 -- 添加{TaskContentML=整理家务}到我的任务里 -- 添加{TaskContentML=洗车}到我的任务里 -- 笔记 -- 能把{TaskContentML=猪排、苹果酱还有牛奶}添加到{ListType=食品购物}清单吗 -- 能添加{TaskContentML=今天晚上去买爆米花}的任务到{ListType=待办事项}吗 -- 要{TaskContentML=跟老师见面},添加到我的任务里 -- {ListType=购买}清单里加上{TaskContentML=鱼} -- {ListType=购物}单加一项,{TaskContentML=买橙汁} -- {ListType=购物}单加上个{TaskContentML=鞋} -- {ListType=购物}单里添加一个{TaskContentML=买牛奶}的任务 -- {ListType=购物}单里添加一项{TaskContentML=洋葱牛排} -- {ListType=购物}单里添加一项{TaskContentML=滑雪板} -- {ListType=购物}单里添加{TaskContentML=羽绒服} -- {ListType=购物}笔记里 -- 追加一个{TaskContentML=聚会邀请嘉宾}的任务 -- 那个{ListType=购物}单里添加一项 -- 里加个{TaskContentML=买牛奶} -- {ListType=食品购物}单再加一个{TaskContentML=大米} -- {ListType=食品购物}单加上:{TaskContentML=儿童辅食} -- {ListType=食品购物}单添一项,{TaskContentML=买蔬菜} -- {ListType=食品购物}单里再加一些东西 -- {ListType=食品购物}单里添加一项{TaskContentML=白胡桃泥} -- {ListType=食品购物}清单中加上{TaskContentML=冰淇淋} -- {ListType=食品购物}清单里添加一些东西 -- {ListType=食品购物}笔记里加个{TaskContentML=买牛奶} - - -## DeleteToDo -- 不要{TaskContentML=苹果}这个选项,从{ListType=购物}清单里面清除 -- 从我的{ListType=购物}清单中删除{TaskContentML=买袜子}这一项 -- 从{ListType=购物}单中删除{TaskContentML=洗发水} -- 从{ListType=购物}单里删除{TaskContentML=机油} -- 从{ListType=食品}清单中删除{TaskContentML=沙拉蔬菜} -- 从{ListType=食品购物}清单中去掉{TaskContentML=苹果}这项 -- 从{ListType=食物}列表里去除{TaskContentML=香蕉}这个选项 -- 从{ListType=食物}清单中删除{TaskContentML=苹果}选项 -- 任务{ContainsAll=都}删除掉 -- {ContainsAll=全}删掉 -- {ContainsAll=全部}取消 -- 列表中的{TaskContentML=啤酒罐}任务,取消,不做了 -- 删了它吧 -- 删了{TaskContentML=每天早晨去健身房}的任务吧 -- 删了{ListType=购物}清单里的{TaskContentML=柠檬和洋葱} -- 删去{TaskContentML=去购物}这条备忘录 -- 删掉我{ListType=购物}清单里的{TaskContentML=袜子和鞋} -- 删掉{ListType=食品购物}清单里的{TaskContentML=咖啡} -- 删除在{ListType=购物}清单上的{TaskContentML=煎饼粉} -- 删除{ListType=待做事项}里{TaskContentML=每天要做的钢琴练习}这一项 -- 删除{ListType=待办事项}里的{TaskContentML=巴黎度假} -- 删除{TaskContentML=明天早上去看牙医}这条{ListType=待做事项} -- 删除清单中的{TaskContentML=鸡蛋} -- 删除{TaskContentML=这个周末打扫卫生}的备忘录 -- 去掉{ListType=待办事项}中的{TaskContentML=上课}那一项 -- 去掉清单中的{TaskContentML=衬衫} -- 取消“{TaskContentML=去健身}”的{ListType=待办事项} -- 取消{ContainsAll=所有}任务 -- 取消这个{ListType=待办事项} -- {TaskContentML=周五下午见约翰}这个{ListType=待办事件}帮我删掉 -- 备忘录中的{TaskContentML=购买鞋子},请帮我取消掉 -- 备忘录中的{TaskContentML=钓鱼}删掉 -- 将{TaskContentML=去健身房}的{ListType=待办事项}取消掉 -- 把{TaskContentML=今晚去看电影}的任务删除 -- 把{TaskContentML=体检}从{ListType=待办事项}中删除 -- 把{TaskContentML=修草坪}从{ListType=待办事项}删除 -- 把{TaskContentML=去购物}这一项删除 -- 把{TaskContentML=牛奶}从{ListType=食品购物}清单里删掉 -- 把{TaskContentML=牛奶}从{ListType=食品购物}清单里面删了 -- 把{ListType=购物}清单中第二个任务删除 -- 把这个任务划掉吧 -- 把{TaskContentML=香蕉}从{ListType=购物}单中移除 -- 把{TaskContentML=鸡蛋}从{ListType=食品购物}清单里删了 -- 清空我的任务清单里的{ContainsAll=所有}项目 -- 清空这项 -- 清空{ListType=食品购物}单 -- 清空{ListType=食品购物}单中的{ContainsAll=全部}项目 -- 移掉{TaskContentML=下班后去图书馆}的{ListType=待办事项} -- 移除“{TaskContentML=本周六和约翰购物}”的备忘录 -- 能否把{TaskContentML=水}从我的{ListType=购物}列表中删掉 -- {ListType=购物}清单中的{TaskContentML=阿司匹林}删了吧 - - -## MarkToDo -- {TaskContentML=买东西}已完成 -- {TaskContentML=买牛奶}已经完成 -- {TaskContentML=买胶水}的任务改成已完成 -- 任务清单里{TaskContentML=洗碗}标成已完成 -- 任务清单里面{TaskContentML=扔垃圾}标成已完成 -- 任务清单里面{TaskContentML=接孩子放学}标记完成 -- 任务{ContainsAll=都}完成了 -- {ContainsAll=全部}购物任务都做完了 -- 已经{TaskContentML=拜访过我的奶奶}了 -- 帮我把{ContainsAll=所有}{ListType=食物}清单都勾掉 -- 我的{ListType=食品购物}清单里面勾掉买{TaskContentML=香蕉} -- {ContainsAll=所有}都完成了 -- 把{TaskContentML=上午八点和约翰见面}的任务标记为已完成 -- 把{TaskContentML=买一瓶醋}这个项目标记为完成 -- 把任务{ContainsAll=都}设置为完成 -- 把{TaskContentML=去跑步}这个任务划掉 -- 把{TaskContentML=去运动}标记为已完成 -- 把{TaskContentML=周四}从{ListType=待办事项}上划掉 -- 把{TaskContentML=和汤姆打羽毛球}这个项目标记为完成 -- 把备忘录中{TaskContentML=圣诞}项目标记为完成 -- 把备忘录中{TaskContentML=扫地}项目标记为完成 -- 把{ListType=待办事项}里的{TaskContentML=拿牛奶}划掉 -- 把{TaskContentML=接孩子放学}标记为已完成 -- 把{ListType=购物}单中的{TaskContentML=木薯淀粉}标记完成 -- 把{ListType=购物}单的{TaskContentML=焦糖奶酪爆米花}这个项目标记为完成 -- 把{ListType=购物}清单中的{TaskContentML=买花生}任务标记为已完成 -- 把{ListType=购物}清单中的{TaskContentML=垃圾袋}勾掉 -- 把购物清单中的{TaskContentML=花生}项目标记为完成 -- 把{ListType=购物}清单里的{TaskContentML=沙拉}标记为完成 -- 把购物清单里面的{TaskContentML=洗发水}勾掉 -- 把这一项标记为已完成 -- 把这个任务标记为完成吧 -- 把这个{ListType=购物}单中项目标记为完成:{TaskContentML=焦糖奶酪爆米花} -- 把{ListType=食品购物}清单上的{TaskContentML=香蕉}标记为已完成 -- 把{ListType=食品购物}清单中的{TaskContentML=花生}勾掉 -- 把{ListType=食品购物}清单里的{TaskContentML=买蔬菜沙拉}划掉 -- 把{ListType=食品购物}清单里的{TaskContentML=沙拉}划掉 -- 把{ListType=食物}清单上的{TaskContentML=沙拉}这个项目勾掉 -- 标记我{ListType=待完成事项}中的{TaskContentML=徒步}任务成已完成 -- 标记{ListType=食品}清单为已完成 -- 看看{ListType=食品购物}清单中哪些已完成了 -- 第一个任务已完成 -- 第三个任务完成了,帮我标记一下 -- 请把{ListType=食品购物}清单中的{TaskContentML=柠檬和洋葱}勾掉 -- {TaskContentML=读书}这件事可以标记成完成了 -- {TaskContentML=购物}任务完成了 -- {ListType=购物}单事项刚刚{ContainsAll=都}做完了 -- {ListType=购物}清单里{ContainsAll=所有}标记为已完成 -- {ListType=购物}清单里面勾掉{TaskContentML=买黑色的气球} -- {ListType=购物}清单里面的{TaskContentML=洗发水}标记为已买 - - -## None - - -## ShowNextPage -- 下一个任务 -- 下一个任务是什么 -- 下一页有啥 -- 下一页的任务呢 -- 下一页的任务是什么 -- 之后一页的任务呢? -- 之后的任务是什么? -- 你能给我看下{ListType=购物}清单的下一页吗 -- 切换到下一个任务 -- 后边还有其他的任务吗 -- 后面还有什么任务? -- 接下去还有什么任务呢? -- 接下来的{ListType=待办事项} -- 接下来还有哪些任务 -- 看看后面的任务 -- 让我看一下之后三项任务 -- 还有什么任务 -- 还有什么其他的任务吗 -- 还有哪些任务要做? -- 还有哪些{ListType=待办事项}呢? -- 还有哪些需要购买的? -- 还有更多的任务吗? - - -## ShowPreviousPage -- 前一页任务 -- 前面两页的任务 -- 回到上一个任务 -- 回到上一页的任务 -- 我想看下上一页的内容 -- 显示上一页内容 -- 看一下之前的任务 -- 看看先前的任务 -- 给我看一下我以前的任务 -- 给我看看上一页的任务 - - -## ShowToDo -- 对于要去食品店买的东西我都记了哪些 -- 展示一下周五的{ListType=食品购物}清单 -- 展示一下我的备忘录 -- 展示一下我的{ListType=食品购物}清单 -- 展示出来{ListType=购物}清单中要买的东西 -- 展示我的备忘录 -- 展示我的{ListType=购物}清单 -- 展示{ListType=食品购物}清单 -- 帮忙展示我的{ListType=待办事项} -- {ListType=待办事项}的列表 -- {ListType=待办事项}里我必须做的事情 -- 我想看看我的{ListType=待办事项} -- 我有一个叫{ListType=食品购物}清单的备忘录吗 -- 我的{ListType=待处理事项}里有什么 -- 打开我的任务列表 -- 打开我的{ListType=食品购物}清单 -- 打开{ListType=购物}笔记 -- 找出{ListType=购物}的清单 -- 把我的任务显示出来 -- 报一下我的任务列表 -- 报一下我的{ListType=购物}单 -- 显示一下我在周六保存的{ListType=食品购物}清单 -- 显示一下我的{ListType=食品购物}清单。 -- 显示下我的{ListType=购物}清单上的{ContainsAll=所有}内容呗 -- 显示下{ListType=食品购物}清单 -- 显示备忘录中{ContainsAll=所有}的任务 -- 显示{ListType=待办事项} -- 显示我备忘录上的{ListType=购物}清单 -- 显示{ListType=食品购物}清单的内容 -- 查看我的{ListType=食品购物}清单 -- 检查{ListType=食品购物}清单 -- 看一下上个月{ContainsAll=所有的}备忘录 -- 看一下我的{ListType=购物}列表 -- 看一下{ListType=食品购物}清单 -- 看下{ListType=购物}单中{ContainsAll=所有的}东西 -- 看看我的{ListType=购物}单 -- 看看我都有什么{ListType=待办事项} -- 看看{ListType=购物}清单 -- 瞧瞧我的{ListType=购物}单 -- 给我看一下我工作方面的{ListType=待办事项} -- 给我看一下我的{ListType=食品购物}清单 -- 给我看一下我{ListType=购物}单上有什么 -- 给我看{ListType=待办事项}上我需要做什么 -- 给我看我的{ListType=食品购物}清单 -- 给我看看我的{ListType=购物}单 -- 访问我的备忘录 -- 麻烦帮我找下今天的{ListType=食品购物}清单 - - -> # Entity definitions - -$ContainsAll:simple - -$ListType:simple - -$TaskContentML:simple - - -> # PREBUILT Entity definitions - -$PREBUILT:number - -$PREBUILT:ordinal - - -> # Phrase list definitions - - -> # List entities - -$FoodOfGrocery:冰淇淋= - -$FoodOfGrocery:咖啡= - -$FoodOfGrocery:啤酒= - -$FoodOfGrocery:奶油= - -$FoodOfGrocery:奶酪= - -$FoodOfGrocery:意大利面= - -$FoodOfGrocery:木薯淀粉= - -$FoodOfGrocery:松饼粉= - -$FoodOfGrocery:果冻= - -$FoodOfGrocery:柠檬= - -$FoodOfGrocery:核仁巧克力饼= - -$FoodOfGrocery:橙汁= - -$FoodOfGrocery:水= - -$FoodOfGrocery:水果= - -$FoodOfGrocery:沙拉= - -$FoodOfGrocery:洋葱= - -$FoodOfGrocery:浆果= - -$FoodOfGrocery:浓奶油= - -$FoodOfGrocery:火腿= - -$FoodOfGrocery:烟熏火鸡= - -$FoodOfGrocery:焦糖= - -$FoodOfGrocery:焦糖奶酪爆米花= - -$FoodOfGrocery:煎饼粉= - -$FoodOfGrocery:爆米花= - -$FoodOfGrocery:牛奶= - -$FoodOfGrocery:牛排= - -$FoodOfGrocery:狗粮= - -$FoodOfGrocery:猪排= - -$FoodOfGrocery:甜瓜糖= - -$FoodOfGrocery:白胡桃泥= - -$FoodOfGrocery:红糖= - -$FoodOfGrocery:芝士= - -$FoodOfGrocery:花生= - -$FoodOfGrocery:花生酱= - -$FoodOfGrocery:苹果= - -$FoodOfGrocery:苹果酱= - -$FoodOfGrocery:菠菜= - -$FoodOfGrocery:葡萄干= - -$FoodOfGrocery:蔬菜= - -$FoodOfGrocery:蔬菜沙拉= - -$FoodOfGrocery:西红柿= - -$FoodOfGrocery:醋= - -$FoodOfGrocery:面包= - -$FoodOfGrocery:饮料= - -$FoodOfGrocery:饼干= - -$FoodOfGrocery:香蕉= - -$FoodOfGrocery:鱼= - -$FoodOfGrocery:鸡蛋= - - - -$ShopVerb:买= - -$ShopVerb:购物= - - - diff --git a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/DeploymentScripts/bot.recipe b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/DeploymentScripts/bot.recipe deleted file mode 100644 index d472b275bc..0000000000 --- a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/DeploymentScripts/bot.recipe +++ /dev/null @@ -1,40 +0,0 @@ -{ - "version": "1.0", - "resources": [ - { - "type": "endpoint", - "id": "1", - "name": "development", - "url": "http://localhost:3980/api/messages" - }, - { - "type": "endpoint", - "id": "108", - "name": "production", - "url": "https://your-bot-url.azurewebsites.net/api/messages" - }, - { - "type": "abs", - "id": "199", - "name": "CustomAssistantABS" - }, - { - "type": "blob", - "id": "2", - "name": "CustomAssistantStorage", - "container": "transcripts" - }, - { - "type": "appInsights", - "id": "3", - "name": "CustomAssistantInsights" - }, - { - "type": "cosmosdb", - "id": "8", - "name": "CustomAssistantCosmosDB", - "database": "botstate-db", - "collection": "botstate-collection" - } - ] -} \ No newline at end of file diff --git a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/DeploymentScripts/de/bot.recipe b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/DeploymentScripts/de/bot.recipe deleted file mode 100644 index 473f55d6bb..0000000000 --- a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/DeploymentScripts/de/bot.recipe +++ /dev/null @@ -1,15 +0,0 @@ -{ - "version": "1.0", - "resources": [ - { - "type": "luis", - "id": "general", - "name": "General" - }, - { - "type": "luis", - "id": "todo", - "name": "ToDo" - } - ] -} \ No newline at end of file diff --git a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/DeploymentScripts/deploy_bot.ps1 b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/DeploymentScripts/deploy_bot.ps1 deleted file mode 100644 index 65d2ab3b20..0000000000 --- a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/DeploymentScripts/deploy_bot.ps1 +++ /dev/null @@ -1,50 +0,0 @@ -# all msbot clone parameters and locales -Param( - [string] [Parameter(Mandatory=$true)]$name, - [string] [Parameter(Mandatory=$true)]$location, - [string] [Parameter(Mandatory=$true)]$luisAuthoringKey, - [string] $locales = "en-us", - [switch] $languagesOnly, - [string] $luisAuthoringRegion, - [string] $luisPublishRegion, - [string] $subscriptionId, - [string] $insightsRegion, - [string] $groupName, - [string] $sdkLanguage, - [string] $sdkVersion, - [string] $prefix, - [string] $appId, - [string] $appSecret -) - -if (!$languagesOnly) -{ - # Change to project directory for .bot file - Write-Host "Changing to project directory ..." - cd "$($PSScriptRoot)\..\" - - # Deploy the common resources (Azure Bot Service, App Insights, Azure Storage, Cosmos DB, etc) - Write-Host "Deploying common resources..." - msbot clone services -n $name -l $location --luisAuthoringKey $luisAuthoringKey --folder "$($PSScriptRoot)" --appId $appId --appSecret $appSecret --force --quiet -} - -$localeArr = $locales.Split(',') - -foreach ($locale in $localeArr) -{ - # Update deployment scripts for the locale - Invoke-Expression "$($PSScriptRoot)\generate_deployment_scripts.ps1 -locale $($locale)" - - # Get language code from locale (first two characters, i.e. "en") - $langCode = ($locale -split "-")[0] - - # Create LocaleConfigurations folder and change directory - md -Force "$($PSScriptRoot)\..\LocaleConfigurations" > $null - cd "$($PSScriptRoot)\..\LocaleConfigurations" > $null - - # Deploy Dispatch, LUIS (calendar, email, todo, and general), and QnA Maker for the locale - Write-Host "Deploying $($locale) resources..." - msbot clone services -n "$($name)$($langCode)" -l $location --luisAuthoringKey $luisAuthoringKey --groupName $name --force --quiet --folder "$($PSScriptRoot)\$($langCode)" | Out-Null -} - -Write-Host "Done." \ No newline at end of file diff --git a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/DeploymentScripts/en/bot.recipe b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/DeploymentScripts/en/bot.recipe deleted file mode 100644 index 473f55d6bb..0000000000 --- a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/DeploymentScripts/en/bot.recipe +++ /dev/null @@ -1,15 +0,0 @@ -{ - "version": "1.0", - "resources": [ - { - "type": "luis", - "id": "general", - "name": "General" - }, - { - "type": "luis", - "id": "todo", - "name": "ToDo" - } - ] -} \ No newline at end of file diff --git a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/DeploymentScripts/es/bot.recipe b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/DeploymentScripts/es/bot.recipe deleted file mode 100644 index 473f55d6bb..0000000000 --- a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/DeploymentScripts/es/bot.recipe +++ /dev/null @@ -1,15 +0,0 @@ -{ - "version": "1.0", - "resources": [ - { - "type": "luis", - "id": "general", - "name": "General" - }, - { - "type": "luis", - "id": "todo", - "name": "ToDo" - } - ] -} \ No newline at end of file diff --git a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/DeploymentScripts/fr/bot.recipe b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/DeploymentScripts/fr/bot.recipe deleted file mode 100644 index 473f55d6bb..0000000000 --- a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/DeploymentScripts/fr/bot.recipe +++ /dev/null @@ -1,15 +0,0 @@ -{ - "version": "1.0", - "resources": [ - { - "type": "luis", - "id": "general", - "name": "General" - }, - { - "type": "luis", - "id": "todo", - "name": "ToDo" - } - ] -} \ No newline at end of file diff --git a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/DeploymentScripts/generate_deployment_scripts.ps1 b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/DeploymentScripts/generate_deployment_scripts.ps1 deleted file mode 100644 index 6ce1a4a2c7..0000000000 --- a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/DeploymentScripts/generate_deployment_scripts.ps1 +++ /dev/null @@ -1,29 +0,0 @@ -param ( - [string] [Parameter(Mandatory=$true)]$locale -) - -$locale = $locale.ToLower() -$langCode = ($locale -split "-")[0] -$basePath = "$($PSScriptRoot)\.." -$outputPath = "$($PSScriptRoot)\$($langCode)" - -# lu file paths -$todoLUPath = "$($basePath)\CognitiveModels\LUIS\$($langCode)\todo.lu" -$generalLUPath = "$($basePath)\..\..\..\assistant\CognitiveModels\LUIS\$($langCode)\general.lu" - -$luArr = @($todoLUPath, $generalLUPath) - -Write-Host "Updating $($locale) deployment scripts ..." -foreach ($lu in $luArr) -{ - $duplicates = Get-Content $lu | Group-Object | Where-Object { $_.Count -gt 1 } | Select -ExpandProperty Name - - if ($duplicates.Count -gt 1) - { - Write-Error "$($duplicates.Count - 1) duplicate utterances found in $($lu). This could cause issues in your model accuracy." - } -} - -Write-Host "Generating $($locale) LUIS models from .lu files ..." -ludown parse toluis -c $($locale) -o $outputPath --in $todoLUPath --out todo.luis -n ToDo -ludown parse toluis -c $($locale) -o $outputPath --in $generalLUPath --out general.luis -n General \ No newline at end of file diff --git a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/DeploymentScripts/it/bot.recipe b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/DeploymentScripts/it/bot.recipe deleted file mode 100644 index 473f55d6bb..0000000000 --- a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/DeploymentScripts/it/bot.recipe +++ /dev/null @@ -1,15 +0,0 @@ -{ - "version": "1.0", - "resources": [ - { - "type": "luis", - "id": "general", - "name": "General" - }, - { - "type": "luis", - "id": "todo", - "name": "ToDo" - } - ] -} \ No newline at end of file diff --git a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/DeploymentScripts/update_published_models.ps1 b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/DeploymentScripts/update_published_models.ps1 deleted file mode 100644 index f55e2d7b5d..0000000000 --- a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/DeploymentScripts/update_published_models.ps1 +++ /dev/null @@ -1,40 +0,0 @@ -param ( - [string] $locales = "de-de,en-us,es-es,fr-fr,it-it,zh-cn", - [string] $domains = "general,todo" -) - -$localeArr = $locales.Split(",") -$domainArr = $domains.Split(",") -$basePath = "$($PSScriptRoot)\..\LocaleConfigurations\" -$botFiles = get-childitem $basePath -recurse | where {$_.extension -eq ".bot"} - -Write-Host "Updating deployment scripts..." -foreach ($locale in $localeArr) -{ - Invoke-Expression "$($PSScriptRoot)\generate_deployment_scripts.ps1 -locale $($locale)" -} - -foreach ($botFile in $botFiles) -{ - $botFileName = $botFile | % {$_.BaseName} - $langCode = $botFileName.Substring($botFileName.Length - 2, 2) - - if ($localeArr | where {$_ -like "*$($langCode)*"}) - { - Write-Host "Updating $($langCode) LUIS models ..." - foreach ($domain in $domainArr) - { - # Check for existing old version - $versions = msbot get $domain --bot "$($basePath)$($botFile)" | luis list versions --stdin | ConvertFrom-Json - if ($versions | where {$_.version -eq "backup"}) - { - msbot get $domain --bot "$($basePath)$($botFile)" | luis delete version --stdin --versionId backup --force --wait - } - - msbot get $domain --bot "$($basePath)$($botFile)" | luis rename version --newVersionId backup --stdin --wait - msbot get $domain --bot "$($basePath)$($botFile)" | luis import version --stdin --in "$($PSScriptRoot)\$($langCode)\$($domain).luis" --wait - msbot get $domain --bot "$($basePath)$($botFile)" | luis train version --wait --stdin - msbot get $domain --bot "$($basePath)$($botFile)" | luis publish version --stdin - } - } -} \ No newline at end of file diff --git a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/DeploymentScripts/zh/bot.recipe b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/DeploymentScripts/zh/bot.recipe deleted file mode 100644 index 473f55d6bb..0000000000 --- a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/DeploymentScripts/zh/bot.recipe +++ /dev/null @@ -1,15 +0,0 @@ -{ - "version": "1.0", - "resources": [ - { - "type": "luis", - "id": "general", - "name": "General" - }, - { - "type": "luis", - "id": "todo", - "name": "ToDo" - } - ] -} \ No newline at end of file diff --git a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/Shared/Action.cs b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/Action.cs similarity index 98% rename from solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/Shared/Action.cs rename to solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/Action.cs index 2b43533efe..a1b4819dca 100644 --- a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/Shared/Action.cs +++ b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/Action.cs @@ -1,4 +1,4 @@ -namespace ToDoSkill.Dialogs.Shared +namespace ToDoSkill.Dialogs { public static class Action { diff --git a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/AddToDo/AddToDoItemDialog.cs b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/AddToDoItemDialog.cs similarity index 97% rename from solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/AddToDo/AddToDoItemDialog.cs rename to solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/AddToDoItemDialog.cs index d6999572db..de660904dd 100644 --- a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/AddToDo/AddToDoItemDialog.cs +++ b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/AddToDoItemDialog.cs @@ -8,24 +8,24 @@ using Microsoft.Bot.Builder.Solutions.Skills; using Microsoft.Bot.Builder.Solutions.Util; using Microsoft.Bot.Schema; -using ToDoSkill.Dialogs.AddToDo.Resources; -using ToDoSkill.Dialogs.Shared; -using ToDoSkill.Dialogs.Shared.Resources; +using ToDoSkill.Responses.AddToDo; +using ToDoSkill.Responses.Shared; using ToDoSkill.ServiceClients; -using Action = ToDoSkill.Dialogs.Shared.Action; +using ToDoSkill.Services; -namespace ToDoSkill.Dialogs.AddToDo +namespace ToDoSkill.Dialogs { - public class AddToDoItemDialog : ToDoSkillDialog + public class AddToDoItemDialog : ToDoSkillDialogBase { public AddToDoItemDialog( - SkillConfigurationBase services, + BotSettings settings, + BotServices services, ResponseManager responseManager, IStatePropertyAccessor toDoStateAccessor, IStatePropertyAccessor userStateAccessor, IServiceManager serviceManager, IBotTelemetryClient telemetryClient) - : base(nameof(AddToDoItemDialog), services, responseManager, toDoStateAccessor, userStateAccessor, serviceManager, telemetryClient) + : base(nameof(AddToDoItemDialog), settings, services, responseManager, toDoStateAccessor, userStateAccessor, serviceManager, telemetryClient) { TelemetryClient = telemetryClient; diff --git a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/AuthDialog.cs b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/AuthDialog.cs new file mode 100644 index 0000000000..c29f1252b3 --- /dev/null +++ b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/AuthDialog.cs @@ -0,0 +1,184 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading; +using System.Threading.Tasks; +using Microsoft.Bot.Builder; +using Microsoft.Bot.Builder.Dialogs; +using Microsoft.Bot.Builder.Dialogs.Choices; +using Microsoft.Bot.Builder.Solutions; +using Microsoft.Bot.Builder.Solutions.Authentication; +using Microsoft.Bot.Builder.Solutions.Resources; +using Microsoft.Bot.Builder.Solutions.Responses; +using Microsoft.Bot.Builder.Solutions.Telemetry; +using Microsoft.Bot.Schema; +using ToDoSkill.Models; + +namespace ToDoSkill.Dialogs +{ + public class AuthDialog : ComponentDialog + { + private ResponseManager _responseManager; + private Dictionary _cognitiveModels; + private List _oauthConnections; + private string _selectedAuthType = string.Empty; + + public AuthDialog(Dictionary cognitiveModels, List oauthConnections, bool authenticationRequired = false) + : base(nameof(AuthDialog)) + { + _cognitiveModels = cognitiveModels; + _oauthConnections = oauthConnections; + _responseManager = new ResponseManager(cognitiveModels.Keys.ToArray(), new AuthenticationResponses()); + + if (authenticationRequired && !oauthConnections.Any()) + { + throw new Exception("You must configure an authentication connection in your bot file before using this component."); + } + + var auth = new WaterfallStep[] + { + PromptForProvider, + PromptForAuth, + HandleTokenResponse, + }; + + AddDialog(new WaterfallDialog(nameof(AuthDialog), auth)); + AddDialog(new ChoicePrompt(DialogIds.ProviderPrompt) { Style = ListStyle.SuggestedAction }); + + foreach (var connection in oauthConnections) + { + AddDialog(new OAuthPrompt( + connection.Name, + new OAuthPromptSettings + { + ConnectionName = connection.Name, + Title = CommonStrings.Login, + Text = string.Format(CommonStrings.LoginDescription, connection.Name), + }, + AuthPromptValidator)); + } + } + + private async Task PromptForProvider(WaterfallStepContext stepContext, CancellationToken cancellationToken) + { + if (_oauthConnections.Count() == 1) + { + var result = _oauthConnections.ElementAt(0).Name; + return await stepContext.NextAsync(result); + } + else + { + var adapter = stepContext.Context.Adapter as BotFrameworkAdapter; + var tokenStatusCollection = await adapter.GetTokenStatusAsync(stepContext.Context, stepContext.Context.Activity.From.Id); + + var matchingProviders = tokenStatusCollection.Where(p => (bool)p.HasToken && _oauthConnections.Any(t => t.Name == p.ConnectionName)).ToList(); + + if (matchingProviders.Count() == 1) + { + var authType = matchingProviders[0].ConnectionName; + return await stepContext.NextAsync(authType); + } + else if (matchingProviders.Count() > 1) + { + var choices = new List(); + + foreach (var connection in matchingProviders) + { + choices.Add(new Choice() + { + Action = new CardAction(ActionTypes.ImBack, connection.ConnectionName, value: connection.ConnectionName), + Value = connection.ConnectionName, + }); + } + + return await stepContext.PromptAsync(DialogIds.ProviderPrompt, new PromptOptions + { + Prompt = _responseManager.GetResponse(AuthenticationResponses.ConfiguredAuthProvidersPrompt), + Choices = choices, + }); + } + else + { + var choices = new List(); + + foreach (var connection in _oauthConnections) + { + choices.Add(new Choice() + { + Action = new CardAction(ActionTypes.ImBack, connection.Name, value: connection.Name), + Value = connection.Name, + }); + } + + return await stepContext.PromptAsync(DialogIds.ProviderPrompt, new PromptOptions + { + Prompt = _responseManager.GetResponse(AuthenticationResponses.AuthProvidersPrompt), + Choices = choices, + }); + } + } + } + + private async Task PromptForAuth(WaterfallStepContext stepContext, CancellationToken cancellationToken) + { + if (stepContext.Result is string) + { + _selectedAuthType = stepContext.Result as string; + } + else if (stepContext.Result is FoundChoice) + { + var choice = stepContext.Result as FoundChoice; + _selectedAuthType = choice.Value; + } + + return await stepContext.PromptAsync(_selectedAuthType, new PromptOptions()); + } + + private async Task HandleTokenResponse(WaterfallStepContext stepContext, CancellationToken cancellationToken) + { + var tokenResponse = stepContext.Result as TokenResponse; + if (tokenResponse != null && !string.IsNullOrWhiteSpace(tokenResponse.Token)) + { + var result = await CreateProviderTokenResponse(stepContext.Context, tokenResponse); + + return await stepContext.EndDialogAsync(result); + } + else + { + TelemetryClient.TrackEventEx("TokenRetrievalFailure", stepContext.Context.Activity); + return new DialogTurnResult(DialogTurnStatus.Cancelled); + } + } + + private async Task CreateProviderTokenResponse(ITurnContext context, TokenResponse tokenResponse) + { + var adapter = context.Adapter as BotFrameworkAdapter; + var tokens = await adapter.GetTokenStatusAsync(context, context.Activity.From.Id); + var match = Array.Find(tokens, t => t.ConnectionName == tokenResponse.ConnectionName); + + return new ProviderTokenResponse + { + AuthenticationProvider = match.ServiceProviderDisplayName.GetAuthenticationProvider(), + TokenResponse = tokenResponse, + }; + } + + private Task AuthPromptValidator(PromptValidatorContext promptContext, CancellationToken cancellationToken) + { + var token = promptContext.Recognized.Value; + if (token != null && !string.IsNullOrWhiteSpace(token.Token)) + { + return Task.FromResult(true); + } + else + { + return Task.FromResult(false); + } + } + + private class DialogIds + { + public const string ProviderPrompt = "ProviderPrompt"; + } + } +} \ No newline at end of file diff --git a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/DeleteToDo/DeleteToDoItemDialog.cs b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/DeleteToDoItemDialog.cs similarity index 97% rename from solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/DeleteToDo/DeleteToDoItemDialog.cs rename to solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/DeleteToDoItemDialog.cs index 16afc8d17c..81a097b17f 100644 --- a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/DeleteToDo/DeleteToDoItemDialog.cs +++ b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/DeleteToDoItemDialog.cs @@ -10,25 +10,25 @@ using Microsoft.Bot.Builder.Solutions.Skills; using Microsoft.Bot.Builder.Solutions.Util; using Microsoft.Bot.Schema; -using ToDoSkill.Dialogs.DeleteToDo.Resources; -using ToDoSkill.Dialogs.Shared; -using ToDoSkill.Dialogs.Shared.Resources; using ToDoSkill.Models; +using ToDoSkill.Responses.DeleteToDo; +using ToDoSkill.Responses.Shared; using ToDoSkill.ServiceClients; -using Action = ToDoSkill.Dialogs.Shared.Action; +using ToDoSkill.Services; -namespace ToDoSkill.Dialogs.DeleteToDo +namespace ToDoSkill.Dialogs { - public class DeleteToDoItemDialog : ToDoSkillDialog + public class DeleteToDoItemDialog : ToDoSkillDialogBase { public DeleteToDoItemDialog( - SkillConfigurationBase services, + BotSettings settings, + BotServices services, ResponseManager responseManager, IStatePropertyAccessor toDoStateAccessor, IStatePropertyAccessor userStateAccessor, IServiceManager serviceManager, IBotTelemetryClient telemetryClient) - : base(nameof(DeleteToDoItemDialog), services, responseManager, toDoStateAccessor, userStateAccessor, serviceManager, telemetryClient) + : base(nameof(DeleteToDoItemDialog), settings, services, responseManager, toDoStateAccessor, userStateAccessor, serviceManager, telemetryClient) { TelemetryClient = telemetryClient; @@ -106,7 +106,7 @@ public DeleteToDoItemDialog( var state = await ToDoStateAccessor.GetAsync(sc.Context); state.LastListType = state.ListType; - bool canDeleteAnotherTask = false; + var canDeleteAnotherTask = false; var deletedTaskAttachment = new Attachment(); if (!state.MarkOrDeleteAllTasksFlag) { diff --git a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/Main/MainDialog.cs b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/MainDialog.cs similarity index 78% rename from solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/Main/MainDialog.cs rename to solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/MainDialog.cs index cd96495837..dc58dd69af 100644 --- a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/Main/MainDialog.cs +++ b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/MainDialog.cs @@ -11,24 +11,19 @@ using Microsoft.Bot.Builder.Dialogs; using Microsoft.Bot.Builder.Solutions.Dialogs; using Microsoft.Bot.Builder.Solutions.Responses; -using Microsoft.Bot.Builder.Solutions.Skills; using Microsoft.Bot.Schema; using ToDoSkill.Common; -using ToDoSkill.Dialogs.AddToDo; -using ToDoSkill.Dialogs.DeleteToDo; -using ToDoSkill.Dialogs.Main.Resources; -using ToDoSkill.Dialogs.MarkToDo; -using ToDoSkill.Dialogs.Shared.DialogOptions; -using ToDoSkill.Dialogs.ShowToDo; +using ToDoSkill.Models; +using ToDoSkill.Responses.Main; using ToDoSkill.ServiceClients; -using static ToDoSkill.Dialogs.Shared.ServiceProviderTypes; +using ToDoSkill.Services; -namespace ToDoSkill.Dialogs.Main +namespace ToDoSkill.Dialogs { public class MainDialog : RouterDialog { - private bool _skillMode; - private SkillConfigurationBase _services; + private BotSettings _settings; + private BotServices _services; private ResponseManager _responseManager; private UserState _userState; private ConversationState _conversationState; @@ -37,16 +32,16 @@ public class MainDialog : RouterDialog private IStatePropertyAccessor _userStateAccessor; public MainDialog( - SkillConfigurationBase services, + BotSettings settings, + BotServices services, ResponseManager responseManager, ConversationState conversationState, UserState userState, IBotTelemetryClient telemetryClient, - IServiceManager serviceManager, - bool skillMode) + IServiceManager serviceManager) : base(nameof(MainDialog), telemetryClient) { - _skillMode = skillMode; + _settings = settings; _services = services; _responseManager = responseManager; _conversationState = conversationState; @@ -64,11 +59,7 @@ public MainDialog( protected override async Task OnStartAsync(DialogContext dc, CancellationToken cancellationToken = default(CancellationToken)) { - if (!_skillMode) - { - // send a greeting if we're in local mode - await dc.Context.SendActivityAsync(_responseManager.GetResponse(ToDoMainResponses.ToDoWelcomeMessage)); - } + await dc.Context.SendActivityAsync(_responseManager.GetResponse(ToDoMainResponses.ToDoWelcomeMessage)); } protected override async Task RouteAsync(DialogContext dc, CancellationToken cancellationToken = default(CancellationToken)) @@ -77,7 +68,7 @@ public MainDialog( // get current activity locale var locale = CultureInfo.CurrentUICulture.TwoLetterISOLanguageName; - var localeConfig = _services.LocaleConfigurations[locale]; + var localeConfig = _services.CognitiveModelSets[locale]; // Initialize the PageSize and ReadSize parameters in state from configuration InitializeConfig(state); @@ -96,29 +87,24 @@ public MainDialog( var intent = result?.TopIntent().intent; var generalTopIntent = state.GeneralLuisResult?.TopIntent().intent; - var skillOptions = new ToDoSkillDialogOptions - { - SkillMode = _skillMode, - }; - // switch on general intents switch (intent) { case ToDoLU.Intent.AddToDo: { - turnResult = await dc.BeginDialogAsync(nameof(AddToDoItemDialog), skillOptions); + turnResult = await dc.BeginDialogAsync(nameof(AddToDoItemDialog)); break; } case ToDoLU.Intent.MarkToDo: { - turnResult = await dc.BeginDialogAsync(nameof(MarkToDoItemDialog), skillOptions); + turnResult = await dc.BeginDialogAsync(nameof(MarkToDoItemDialog)); break; } case ToDoLU.Intent.DeleteToDo: { - turnResult = await dc.BeginDialogAsync(nameof(DeleteToDoItemDialog), skillOptions); + turnResult = await dc.BeginDialogAsync(nameof(DeleteToDoItemDialog)); break; } @@ -126,7 +112,7 @@ public MainDialog( case ToDoLU.Intent.ShowPreviousPage: case ToDoLU.Intent.ShowToDo: { - turnResult = await dc.BeginDialogAsync(nameof(ShowToDoItemDialog), skillOptions); + turnResult = await dc.BeginDialogAsync(nameof(ShowToDoItemDialog)); break; } @@ -135,16 +121,13 @@ public MainDialog( if (generalTopIntent == General.Intent.ShowNext || generalTopIntent == General.Intent.ShowPrevious) { - turnResult = await dc.BeginDialogAsync(nameof(ShowToDoItemDialog), skillOptions); + turnResult = await dc.BeginDialogAsync(nameof(ShowToDoItemDialog)); } else { // No intent was identified, send confused message await dc.Context.SendActivityAsync(_responseManager.GetResponse(ToDoMainResponses.DidntUnderstandMessage)); - if (_skillMode) - { - turnResult = new DialogTurnResult(DialogTurnStatus.Complete); - } + turnResult = new DialogTurnResult(DialogTurnStatus.Complete); } break; @@ -154,10 +137,7 @@ public MainDialog( { // intent was identified but not yet implemented await dc.Context.SendActivityAsync(_responseManager.GetResponse(ToDoMainResponses.FeatureNotAvailable)); - if (_skillMode) - { - turnResult = new DialogTurnResult(DialogTurnStatus.Complete); - } + turnResult = new DialogTurnResult(DialogTurnStatus.Complete); break; } @@ -172,13 +152,10 @@ public MainDialog( protected override async Task CompleteAsync(DialogContext dc, DialogTurnResult result = null, CancellationToken cancellationToken = default(CancellationToken)) { - if (_skillMode) - { - var response = dc.Context.Activity.CreateReply(); - response.Type = ActivityTypes.EndOfConversation; + var response = dc.Context.Activity.CreateReply(); + response.Type = ActivityTypes.EndOfConversation; - await dc.Context.SendActivityAsync(response); - } + await dc.Context.SendActivityAsync(response); // End active dialog await dc.EndDialogAsync(result); @@ -227,15 +204,15 @@ public MainDialog( { // get current activity locale var locale = CultureInfo.CurrentUICulture.TwoLetterISOLanguageName; - var localeConfig = _services.LocaleConfigurations[locale]; + var cognitiveModels = _services.CognitiveModelSets[locale]; // Update state with email luis result and entities - var toDoLuisResult = await localeConfig.LuisServices["todo"].RecognizeAsync(dc.Context, cancellationToken); + var toDoLuisResult = await cognitiveModels.LuisServices["todo"].RecognizeAsync(dc.Context, cancellationToken); var state = await _toDoStateAccessor.GetAsync(dc.Context, () => new ToDoSkillState()); state.LuisResult = toDoLuisResult; // check luis intent - localeConfig.LuisServices.TryGetValue("general", out var luisService); + cognitiveModels.LuisServices.TryGetValue("general", out var luisService); if (luisService == null) { @@ -316,10 +293,10 @@ private async Task OnLogout(DialogContext dc) private void RegisterDialogs() { - AddDialog(new AddToDoItemDialog(_services, _responseManager, _toDoStateAccessor, _userStateAccessor, _serviceManager, TelemetryClient)); - AddDialog(new MarkToDoItemDialog(_services, _responseManager, _toDoStateAccessor, _userStateAccessor, _serviceManager, TelemetryClient)); - AddDialog(new DeleteToDoItemDialog(_services, _responseManager, _toDoStateAccessor, _userStateAccessor, _serviceManager, TelemetryClient)); - AddDialog(new ShowToDoItemDialog(_services, _responseManager, _toDoStateAccessor, _userStateAccessor, _serviceManager, TelemetryClient)); + AddDialog(new AddToDoItemDialog(_settings, _services, _responseManager, _toDoStateAccessor, _userStateAccessor, _serviceManager, TelemetryClient)); + AddDialog(new MarkToDoItemDialog(_settings, _services, _responseManager, _toDoStateAccessor, _userStateAccessor, _serviceManager, TelemetryClient)); + AddDialog(new DeleteToDoItemDialog(_settings, _services, _responseManager, _toDoStateAccessor, _userStateAccessor, _serviceManager, TelemetryClient)); + AddDialog(new ShowToDoItemDialog(_settings, _services, _responseManager, _toDoStateAccessor, _userStateAccessor, _serviceManager, TelemetryClient)); } private void InitializeConfig(ToDoSkillState state) @@ -328,7 +305,7 @@ private void InitializeConfig(ToDoSkillState state) if (state.PageSize <= 0) { var pageSize = 0; - if (_services.Properties.TryGetValue("DisplaySize", out var displaySizeObj)) + if (_settings.Properties.TryGetValue("DisplaySize", out var displaySizeObj)) { int.TryParse(displaySizeObj.ToString(), out pageSize); } @@ -336,14 +313,14 @@ private void InitializeConfig(ToDoSkillState state) state.PageSize = pageSize <= 0 ? ToDoCommonUtil.DefaultDisplaySize : pageSize; } - if (state.TaskServiceType == ProviderTypes.Other) + if (state.TaskServiceType == ServiceProviderType.Other) { - state.TaskServiceType = ProviderTypes.Outlook; - if (_services.Properties.TryGetValue("TaskServiceProvider", out var taskServiceProvider)) + state.TaskServiceType = ServiceProviderType.Outlook; + if (_settings.Properties.TryGetValue("TaskServiceProvider", out var taskServiceProvider)) { - if (taskServiceProvider.ToString().Equals(ProviderTypes.OneNote.ToString(), StringComparison.InvariantCultureIgnoreCase)) + if (taskServiceProvider.ToString().Equals(ServiceProviderType.OneNote.ToString(), StringComparison.InvariantCultureIgnoreCase)) { - state.TaskServiceType = ProviderTypes.OneNote; + state.TaskServiceType = ServiceProviderType.OneNote; } } } diff --git a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/MarkToDo/MarkToDoItemDialog.cs b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/MarkToDoItemDialog.cs similarity index 97% rename from solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/MarkToDo/MarkToDoItemDialog.cs rename to solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/MarkToDoItemDialog.cs index aa669a88c9..bab8f37fc4 100644 --- a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/MarkToDo/MarkToDoItemDialog.cs +++ b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/MarkToDoItemDialog.cs @@ -9,25 +9,25 @@ using Microsoft.Bot.Builder.Solutions.Skills; using Microsoft.Bot.Builder.Solutions.Util; using Microsoft.Bot.Schema; -using ToDoSkill.Dialogs.MarkToDo.Resources; -using ToDoSkill.Dialogs.Shared; -using ToDoSkill.Dialogs.Shared.Resources; using ToDoSkill.Models; +using ToDoSkill.Responses.MarkToDo; +using ToDoSkill.Responses.Shared; using ToDoSkill.ServiceClients; -using Action = ToDoSkill.Dialogs.Shared.Action; +using ToDoSkill.Services; -namespace ToDoSkill.Dialogs.MarkToDo +namespace ToDoSkill.Dialogs { - public class MarkToDoItemDialog : ToDoSkillDialog + public class MarkToDoItemDialog : ToDoSkillDialogBase { public MarkToDoItemDialog( - SkillConfigurationBase services, + BotSettings settings, + BotServices services, ResponseManager responseManager, IStatePropertyAccessor toDoStateAccessor, IStatePropertyAccessor userStateAccessor, IServiceManager serviceManager, IBotTelemetryClient telemetryClient) - : base(nameof(MarkToDoItemDialog), services, responseManager, toDoStateAccessor, userStateAccessor, serviceManager, telemetryClient) + : base(nameof(MarkToDoItemDialog), settings, services, responseManager, toDoStateAccessor, userStateAccessor, serviceManager, telemetryClient) { TelemetryClient = telemetryClient; diff --git a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/Shared/DialogOptions/ToDoSkillDialogOptions.cs b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/Shared/DialogOptions/ToDoSkillDialogOptions.cs deleted file mode 100644 index c1c5c185a2..0000000000 --- a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/Shared/DialogOptions/ToDoSkillDialogOptions.cs +++ /dev/null @@ -1,7 +0,0 @@ -namespace ToDoSkill.Dialogs.Shared.DialogOptions -{ - public class ToDoSkillDialogOptions - { - public bool SkillMode { get; set; } - } -} \ No newline at end of file diff --git a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/Shared/ServiceProviderTypes.cs b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/Shared/ServiceProviderTypes.cs deleted file mode 100644 index 30e76a4885..0000000000 --- a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/Shared/ServiceProviderTypes.cs +++ /dev/null @@ -1,23 +0,0 @@ -namespace ToDoSkill.Dialogs.Shared -{ - public class ServiceProviderTypes - { - public enum ProviderTypes - { - /// - /// OneNote task list. - /// - OneNote, - - /// - /// Outlook task list. - /// - Outlook, - - /// - /// Other task list. - /// - Other, - } - } -} \ No newline at end of file diff --git a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/ShowToDo/ShowToDoItemDialog.cs b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/ShowToDoItemDialog.cs similarity index 98% rename from solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/ShowToDo/ShowToDoItemDialog.cs rename to solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/ShowToDoItemDialog.cs index 2a56048f4b..68e02778b9 100644 --- a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/ShowToDo/ShowToDoItemDialog.cs +++ b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/ShowToDoItemDialog.cs @@ -9,24 +9,24 @@ using Microsoft.Bot.Builder.Solutions.Skills; using Microsoft.Bot.Builder.Solutions.Util; using Microsoft.Bot.Schema; -using ToDoSkill.Dialogs.Shared; -using ToDoSkill.Dialogs.Shared.Resources; -using ToDoSkill.Dialogs.ShowToDo.Resources; +using ToDoSkill.Responses.Shared; +using ToDoSkill.Responses.ShowToDo; using ToDoSkill.ServiceClients; -using Action = ToDoSkill.Dialogs.Shared.Action; +using ToDoSkill.Services; -namespace ToDoSkill.Dialogs.ShowToDo +namespace ToDoSkill.Dialogs { - public class ShowToDoItemDialog : ToDoSkillDialog + public class ShowToDoItemDialog : ToDoSkillDialogBase { public ShowToDoItemDialog( - SkillConfigurationBase services, + BotSettings settings, + BotServices services, ResponseManager responseManager, IStatePropertyAccessor toDoStateAccessor, IStatePropertyAccessor userStateAccessor, IServiceManager serviceManager, IBotTelemetryClient telemetryClient) - : base(nameof(ShowToDoItemDialog), services, responseManager, toDoStateAccessor, userStateAccessor, serviceManager, telemetryClient) + : base(nameof(ShowToDoItemDialog), settings, services, responseManager, toDoStateAccessor, userStateAccessor, serviceManager, telemetryClient) { TelemetryClient = telemetryClient; diff --git a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/Shared/ToDoSkillDialog.cs b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/ToDoSkillDialogBase.cs similarity index 91% rename from solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/Shared/ToDoSkillDialog.cs rename to solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/ToDoSkillDialogBase.cs index 344a9888d0..6213a76fa1 100644 --- a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/Shared/ToDoSkillDialog.cs +++ b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/ToDoSkillDialogBase.cs @@ -18,26 +18,28 @@ using Microsoft.Bot.Schema; using Microsoft.Recognizers.Text; using Newtonsoft.Json.Linq; -using ToDoSkill.Dialogs.AddToDo.Resources; -using ToDoSkill.Dialogs.DeleteToDo.Resources; -using ToDoSkill.Dialogs.MarkToDo.Resources; -using ToDoSkill.Dialogs.Shared.DialogOptions; +using ToDoSkill.Dialogs.Shared; using ToDoSkill.Dialogs.Shared.Resources; -using ToDoSkill.Dialogs.ShowToDo.Resources; using ToDoSkill.Models; +using ToDoSkill.Responses.AddToDo; +using ToDoSkill.Responses.DeleteToDo; +using ToDoSkill.Responses.MarkToDo; +using ToDoSkill.Responses.Shared; +using ToDoSkill.Responses.ShowToDo; using ToDoSkill.ServiceClients; -using static ToDoSkill.Dialogs.Shared.ServiceProviderTypes; +using ToDoSkill.Services; -namespace ToDoSkill.Dialogs.Shared +namespace ToDoSkill.Dialogs { - public class ToDoSkillDialog : ComponentDialog + public class ToDoSkillDialogBase : ComponentDialog { // Constants public const string SkillModeAuth = "SkillAuth"; - public ToDoSkillDialog( + public ToDoSkillDialogBase( string dialogId, - SkillConfigurationBase services, + BotSettings settings, + BotServices services, ResponseManager responseManager, IStatePropertyAccessor toDoStateAccessor, IStatePropertyAccessor userStateAccessor, @@ -52,18 +54,18 @@ public ToDoSkillDialog( ServiceManager = serviceManager; TelemetryClient = telemetryClient; - if (!Services.AuthenticationConnections.Any()) + if (!settings.OAuthConnections.Any()) { throw new Exception("You must configure an authentication connection in your bot file before using this component."); } AddDialog(new EventPrompt(SkillModeAuth, "tokens/response", TokenResponseValidator)); - AddDialog(new MultiProviderAuthDialog(services)); + AddDialog(new AuthDialog(services.CognitiveModelSets, settings.OAuthConnections, authenticationRequired: true)); AddDialog(new TextPrompt(Action.Prompt)); AddDialog(new ConfirmPrompt(Action.ConfirmPrompt, null, Culture.English) { Style = ListStyle.SuggestedAction }); } - protected SkillConfigurationBase Services { get; set; } + protected BotServices Services { get; set; } protected IStatePropertyAccessor ToDoStateAccessor { get; set; } @@ -103,27 +105,7 @@ protected override Task EndComponentAsync(DialogContext outerD { try { - var skillOptions = (ToDoSkillDialogOptions)sc.Options; - - // If in Skill mode we ask the calling Bot for the token - if (skillOptions != null && skillOptions.SkillMode) - { - // We trigger a Token Request from the Parent Bot by sending a "TokenRequest" event back and then waiting for a "TokenResponse" - // TODO Error handling - if we get a new activity that isn't an event - var response = sc.Context.Activity.CreateReply(); - response.Type = ActivityTypes.Event; - response.Name = "tokens/request"; - - // Send the tokens/request Event - await sc.Context.SendActivityAsync(response); - - // Wait for the tokens/response event - return await sc.PromptAsync(SkillModeAuth, new PromptOptions()); - } - else - { - return await sc.PromptAsync(nameof(MultiProviderAuthDialog), new PromptOptions() { RetryPrompt = ResponseManager.GetResponse(ToDoSharedResponses.NoAuth) }); - } + return await sc.PromptAsync(nameof(AuthDialog), new PromptOptions() { RetryPrompt = ResponseManager.GetResponse(ToDoSharedResponses.NoAuth) }); } catch (Exception ex) { @@ -136,27 +118,7 @@ protected override Task EndComponentAsync(DialogContext outerD { try { - // When the user authenticates interactively we pass on the tokens/Response event which surfaces as a JObject - // When the token is cached we get a TokenResponse object. - var skillOptions = (ToDoSkillDialogOptions)sc.Options; - ProviderTokenResponse providerTokenResponse; - if (skillOptions != null && skillOptions.SkillMode) - { - var resultType = sc.Context.Activity.Value.GetType(); - if (resultType == typeof(ProviderTokenResponse)) - { - providerTokenResponse = sc.Context.Activity.Value as ProviderTokenResponse; - } - else - { - var tokenResponseObject = sc.Context.Activity.Value as JObject; - providerTokenResponse = tokenResponseObject?.ToObject(); - } - } - else - { - providerTokenResponse = sc.Result as ProviderTokenResponse; - } + var providerTokenResponse = sc.Result as ProviderTokenResponse; if (providerTokenResponse != null) { @@ -448,7 +410,7 @@ protected Attachment ToAdaptiveCardForShowToDos( body.Add(textBlock); var container = new AdaptiveContainer(); - int index = 0; + var index = 0; foreach (var todo in todos) { var columnSet = new AdaptiveColumnSet(); @@ -535,7 +497,7 @@ protected Attachment ToAdaptiveCardForReadMore( body.Add(textBlock); var container = new AdaptiveContainer(); - int index = 0; + var index = 0; foreach (var todo in todos) { var columnSet = new AdaptiveColumnSet(); @@ -614,8 +576,10 @@ protected Attachment ToAdaptiveCardForPreviousPage( speakText = ResponseManager.Format(response.Reply.Speak, new StringDictionary() { { "taskCount", todos.Count.ToString() } }); } - var toDoCard = new AdaptiveCard(); - toDoCard.Speak = speakText; + var toDoCard = new AdaptiveCard + { + Speak = speakText + }; var body = new List(); response = ResponseManager.GetResponseTemplate(ToDoSharedResponses.CardSummaryMessageForMultipleTasks); var showText = ResponseManager.Format(response.Reply.Text, new StringDictionary() { { "taskCount", allTasksCount.ToString() }, { "listType", listType } }); @@ -686,8 +650,10 @@ protected Attachment ToAdaptiveCardForTaskAddedFlow( string listType) { var response = ResponseManager.GetResponseTemplate(AddToDoResponses.AfterTaskAdded); - var toDoCard = new AdaptiveCard(); - toDoCard.Speak = ResponseManager.Format(response.Reply.Speak, new StringDictionary() { { "taskContent", taskContent }, { "listType", listType } }); + var toDoCard = new AdaptiveCard + { + Speak = ResponseManager.Format(response.Reply.Speak, new StringDictionary() { { "taskContent", taskContent }, { "listType", listType } }) + }; var body = new List(); if (allTasksCount == 1) @@ -784,10 +750,14 @@ protected Attachment ToAdaptiveCardForTaskCompletedFlow( { var columnSet = new AdaptiveColumnSet(); - var icon = new AdaptiveImage(); - icon.UrlString = todo.IsCompleted ? IconImageSource.CheckIconSource : IconImageSource.UncheckIconSource; - var iconColumn = new AdaptiveColumn(); - iconColumn.Width = "auto"; + var icon = new AdaptiveImage + { + UrlString = todo.IsCompleted ? IconImageSource.CheckIconSource : IconImageSource.UncheckIconSource + }; + var iconColumn = new AdaptiveColumn + { + Width = "auto" + }; iconColumn.Items.Add(icon); columnSet.Columns.Add(iconColumn); @@ -854,10 +824,14 @@ protected Attachment ToAdaptiveCardForTaskDeletedFlow( { var columnSet = new AdaptiveColumnSet(); - var icon = new AdaptiveImage(); - icon.UrlString = todo.IsCompleted ? IconImageSource.CheckIconSource : IconImageSource.UncheckIconSource; - var iconColumn = new AdaptiveColumn(); - iconColumn.Width = "auto"; + var icon = new AdaptiveImage + { + UrlString = todo.IsCompleted ? IconImageSource.CheckIconSource : IconImageSource.UncheckIconSource + }; + var iconColumn = new AdaptiveColumn + { + Width = "auto" + }; iconColumn.Items.Add(icon); columnSet.Columns.Add(iconColumn); @@ -1004,7 +978,7 @@ protected async Task InitListTypeIds(WaterfallStepContext sc) var taskServiceInit = ServiceManager.InitTaskService(state.MsGraphToken, state.ListTypeIds, state.TaskServiceType); if (taskServiceInit.IsListCreated) { - if (state.TaskServiceType == ProviderTypes.OneNote) + if (state.TaskServiceType == ServiceProviderType.OneNote) { await sc.Context.SendActivityAsync(ResponseManager.GetResponse(ToDoSharedResponses.SettingUpOneNoteMessage)); await sc.Context.SendActivityAsync(ResponseManager.GetResponse(ToDoSharedResponses.AfterOneNoteSetupMessage)); diff --git a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Models/OAuthConnection.cs b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Models/OAuthConnection.cs new file mode 100644 index 0000000000..1e799ae852 --- /dev/null +++ b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Models/OAuthConnection.cs @@ -0,0 +1,9 @@ +namespace ToDoSkill.Models +{ + public class OAuthConnection + { + public string Name { get; set; } + + public string Provider { get; set; } + } +} diff --git a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Models/ServiceProviderTypes.cs b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Models/ServiceProviderTypes.cs new file mode 100644 index 0000000000..b4c2ceeb4f --- /dev/null +++ b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Models/ServiceProviderTypes.cs @@ -0,0 +1,20 @@ +namespace ToDoSkill.Models +{ + public enum ServiceProviderType + { + /// + /// OneNote task list. + /// + OneNote, + + /// + /// Outlook task list. + /// + Outlook, + + /// + /// Other task list. + /// + Other, + } +} \ No newline at end of file diff --git a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/ToDoSkillState.cs b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Models/ToDoSkillState.cs similarity index 97% rename from solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/ToDoSkillState.cs rename to solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Models/ToDoSkillState.cs index 716255c5d5..1178bd1637 100644 --- a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/ToDoSkillState.cs +++ b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Models/ToDoSkillState.cs @@ -2,7 +2,6 @@ using Luis; using Microsoft.Bot.Builder.Dialogs; using ToDoSkill.Models; -using static ToDoSkill.Dialogs.Shared.ServiceProviderTypes; namespace ToDoSkill { @@ -34,7 +33,7 @@ public ToDoSkillState() TaskContentML = null; TaskContent = null; SwitchListType = false; - TaskServiceType = ProviderTypes.Other; + TaskServiceType = ServiceProviderType.Other; AddDupTask = false; UserStateId = null; IsFirstPage = false; @@ -217,7 +216,7 @@ public ToDoSkillState() /// /// ToDoTaskContent. /// - public ProviderTypes TaskServiceType { get; set; } + public ServiceProviderType TaskServiceType { get; set; } /// /// Gets or sets a value indicating whether gets or sets AddDupTask. @@ -293,7 +292,7 @@ public void Clear() TaskContentML = null; TaskContent = null; SwitchListType = false; - TaskServiceType = ProviderTypes.Other; + TaskServiceType = ServiceProviderType.Other; AddDupTask = false; UserStateId = null; IsFirstPage = false; diff --git a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/ToDoSkillUserState.cs b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Models/ToDoSkillUserState.cs similarity index 100% rename from solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/ToDoSkillUserState.cs rename to solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Models/ToDoSkillUserState.cs diff --git a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/AddToDo/Resources/AddToDoResponses.cs b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/AddToDo/AddToDoResponses.cs similarity index 95% rename from solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/AddToDo/Resources/AddToDoResponses.cs rename to solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/AddToDo/AddToDoResponses.cs index 882c5772f6..5b556c088b 100644 --- a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/AddToDo/Resources/AddToDoResponses.cs +++ b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/AddToDo/AddToDoResponses.cs @@ -4,7 +4,7 @@ using Microsoft.Bot.Builder.Solutions.Responses; -namespace ToDoSkill.Dialogs.AddToDo.Resources +namespace ToDoSkill.Responses.AddToDo { /// /// Contains bot responses. diff --git a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/AddToDo/Resources/AddToDoResponses.de.json b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/AddToDo/AddToDoResponses.de.json similarity index 100% rename from solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/AddToDo/Resources/AddToDoResponses.de.json rename to solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/AddToDo/AddToDoResponses.de.json diff --git a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/AddToDo/Resources/AddToDoResponses.es.json b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/AddToDo/AddToDoResponses.es.json similarity index 100% rename from solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/AddToDo/Resources/AddToDoResponses.es.json rename to solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/AddToDo/AddToDoResponses.es.json diff --git a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/AddToDo/Resources/AddToDoResponses.fr.json b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/AddToDo/AddToDoResponses.fr.json similarity index 100% rename from solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/AddToDo/Resources/AddToDoResponses.fr.json rename to solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/AddToDo/AddToDoResponses.fr.json diff --git a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/AddToDo/Resources/AddToDoResponses.it.json b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/AddToDo/AddToDoResponses.it.json similarity index 100% rename from solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/AddToDo/Resources/AddToDoResponses.it.json rename to solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/AddToDo/AddToDoResponses.it.json diff --git a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/AddToDo/Resources/AddToDoResponses.json b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/AddToDo/AddToDoResponses.json similarity index 100% rename from solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/AddToDo/Resources/AddToDoResponses.json rename to solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/AddToDo/AddToDoResponses.json diff --git a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/AddToDo/Resources/AddToDoResponses.tt b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/AddToDo/AddToDoResponses.tt similarity index 58% rename from solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/AddToDo/Resources/AddToDoResponses.tt rename to solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/AddToDo/AddToDoResponses.tt index d636d96c8b..e5404a9ce4 100644 --- a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/AddToDo/Resources/AddToDoResponses.tt +++ b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/AddToDo/AddToDoResponses.tt @@ -1,3 +1,3 @@ <#@ template debug="false" hostspecific="true" language="C#" #> <#@ output extension=".cs" #> -<#@ include file="..\..\Shared\Resources\ResponseIdCollection.t4"#> +<#@ include file="..\Shared\ResponseIdCollection.t4"#> diff --git a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/AddToDo/Resources/AddToDoResponses.zh.json b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/AddToDo/AddToDoResponses.zh.json similarity index 100% rename from solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/AddToDo/Resources/AddToDoResponses.zh.json rename to solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/AddToDo/AddToDoResponses.zh.json diff --git a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/DeleteToDo/Resources/DeleteToDoResponses.cs b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/DeleteToDo/DeleteToDoResponses.cs similarity index 96% rename from solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/DeleteToDo/Resources/DeleteToDoResponses.cs rename to solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/DeleteToDo/DeleteToDoResponses.cs index 768b5fed5f..76ca57fc00 100644 --- a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/DeleteToDo/Resources/DeleteToDoResponses.cs +++ b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/DeleteToDo/DeleteToDoResponses.cs @@ -4,7 +4,7 @@ using Microsoft.Bot.Builder.Solutions.Responses; -namespace ToDoSkill.Dialogs.DeleteToDo.Resources +namespace ToDoSkill.Responses.DeleteToDo { /// /// Contains bot responses. diff --git a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/DeleteToDo/Resources/DeleteToDoResponses.de.json b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/DeleteToDo/DeleteToDoResponses.de.json similarity index 100% rename from solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/DeleteToDo/Resources/DeleteToDoResponses.de.json rename to solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/DeleteToDo/DeleteToDoResponses.de.json diff --git a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/DeleteToDo/Resources/DeleteToDoResponses.es.json b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/DeleteToDo/DeleteToDoResponses.es.json similarity index 100% rename from solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/DeleteToDo/Resources/DeleteToDoResponses.es.json rename to solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/DeleteToDo/DeleteToDoResponses.es.json diff --git a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/DeleteToDo/Resources/DeleteToDoResponses.fr.json b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/DeleteToDo/DeleteToDoResponses.fr.json similarity index 100% rename from solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/DeleteToDo/Resources/DeleteToDoResponses.fr.json rename to solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/DeleteToDo/DeleteToDoResponses.fr.json diff --git a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/DeleteToDo/Resources/DeleteToDoResponses.it.json b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/DeleteToDo/DeleteToDoResponses.it.json similarity index 100% rename from solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/DeleteToDo/Resources/DeleteToDoResponses.it.json rename to solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/DeleteToDo/DeleteToDoResponses.it.json diff --git a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/DeleteToDo/Resources/DeleteToDoResponses.json b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/DeleteToDo/DeleteToDoResponses.json similarity index 100% rename from solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/DeleteToDo/Resources/DeleteToDoResponses.json rename to solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/DeleteToDo/DeleteToDoResponses.json diff --git a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/DeleteToDo/Resources/DeleteToDoResponses.tt b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/DeleteToDo/DeleteToDoResponses.tt similarity index 58% rename from solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/DeleteToDo/Resources/DeleteToDoResponses.tt rename to solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/DeleteToDo/DeleteToDoResponses.tt index d636d96c8b..e5404a9ce4 100644 --- a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/DeleteToDo/Resources/DeleteToDoResponses.tt +++ b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/DeleteToDo/DeleteToDoResponses.tt @@ -1,3 +1,3 @@ <#@ template debug="false" hostspecific="true" language="C#" #> <#@ output extension=".cs" #> -<#@ include file="..\..\Shared\Resources\ResponseIdCollection.t4"#> +<#@ include file="..\Shared\ResponseIdCollection.t4"#> diff --git a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/DeleteToDo/Resources/DeleteToDoResponses.zh.json b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/DeleteToDo/DeleteToDoResponses.zh.json similarity index 100% rename from solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/DeleteToDo/Resources/DeleteToDoResponses.zh.json rename to solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/DeleteToDo/DeleteToDoResponses.zh.json diff --git a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/Main/Resources/TODoMainResponses.cs b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/Main/ToDoMainResponses.cs similarity index 94% rename from solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/Main/Resources/TODoMainResponses.cs rename to solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/Main/ToDoMainResponses.cs index 1285b3e6b1..1f03c1c0c8 100644 --- a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/Main/Resources/TODoMainResponses.cs +++ b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/Main/ToDoMainResponses.cs @@ -4,7 +4,7 @@ using Microsoft.Bot.Builder.Solutions.Responses; -namespace ToDoSkill.Dialogs.Main.Resources +namespace ToDoSkill.Responses.Main { /// /// Contains bot responses. diff --git a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/Main/Resources/ToDoMainResponses.de.json b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/Main/ToDoMainResponses.de.json similarity index 100% rename from solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/Main/Resources/ToDoMainResponses.de.json rename to solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/Main/ToDoMainResponses.de.json diff --git a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/Main/Resources/ToDoMainResponses.es.json b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/Main/ToDoMainResponses.es.json similarity index 100% rename from solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/Main/Resources/ToDoMainResponses.es.json rename to solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/Main/ToDoMainResponses.es.json diff --git a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/Main/Resources/ToDoMainResponses.fr.json b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/Main/ToDoMainResponses.fr.json similarity index 100% rename from solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/Main/Resources/ToDoMainResponses.fr.json rename to solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/Main/ToDoMainResponses.fr.json diff --git a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/Main/Resources/ToDoMainResponses.it.json b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/Main/ToDoMainResponses.it.json similarity index 100% rename from solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/Main/Resources/ToDoMainResponses.it.json rename to solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/Main/ToDoMainResponses.it.json diff --git a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/Main/Resources/ToDoMainResponses.json b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/Main/ToDoMainResponses.json similarity index 100% rename from solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/Main/Resources/ToDoMainResponses.json rename to solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/Main/ToDoMainResponses.json diff --git a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/Main/Resources/ToDoMainResponses.tt b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/Main/ToDoMainResponses.tt similarity index 58% rename from solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/Main/Resources/ToDoMainResponses.tt rename to solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/Main/ToDoMainResponses.tt index d636d96c8b..e5404a9ce4 100644 --- a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/Main/Resources/ToDoMainResponses.tt +++ b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/Main/ToDoMainResponses.tt @@ -1,3 +1,3 @@ <#@ template debug="false" hostspecific="true" language="C#" #> <#@ output extension=".cs" #> -<#@ include file="..\..\Shared\Resources\ResponseIdCollection.t4"#> +<#@ include file="..\Shared\ResponseIdCollection.t4"#> diff --git a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/Main/Resources/ToDoMainResponses.zh.json b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/Main/ToDoMainResponses.zh.json similarity index 100% rename from solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/Main/Resources/ToDoMainResponses.zh.json rename to solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/Main/ToDoMainResponses.zh.json diff --git a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/MarkToDo/Resources/MarkToDoResponses.cs b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/MarkToDo/MarkToDoResponses.cs similarity index 95% rename from solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/MarkToDo/Resources/MarkToDoResponses.cs rename to solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/MarkToDo/MarkToDoResponses.cs index 44db9a6c4c..f00d9ac118 100644 --- a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/MarkToDo/Resources/MarkToDoResponses.cs +++ b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/MarkToDo/MarkToDoResponses.cs @@ -4,7 +4,7 @@ using Microsoft.Bot.Builder.Solutions.Responses; -namespace ToDoSkill.Dialogs.MarkToDo.Resources +namespace ToDoSkill.Responses.MarkToDo { /// /// Contains bot responses. diff --git a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/MarkToDo/Resources/MarkToDoResponses.de.json b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/MarkToDo/MarkToDoResponses.de.json similarity index 100% rename from solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/MarkToDo/Resources/MarkToDoResponses.de.json rename to solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/MarkToDo/MarkToDoResponses.de.json diff --git a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/MarkToDo/Resources/MarkToDoResponses.es.json b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/MarkToDo/MarkToDoResponses.es.json similarity index 100% rename from solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/MarkToDo/Resources/MarkToDoResponses.es.json rename to solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/MarkToDo/MarkToDoResponses.es.json diff --git a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/MarkToDo/Resources/MarkToDoResponses.fr.json b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/MarkToDo/MarkToDoResponses.fr.json similarity index 100% rename from solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/MarkToDo/Resources/MarkToDoResponses.fr.json rename to solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/MarkToDo/MarkToDoResponses.fr.json diff --git a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/MarkToDo/Resources/MarkToDoResponses.it.json b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/MarkToDo/MarkToDoResponses.it.json similarity index 100% rename from solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/MarkToDo/Resources/MarkToDoResponses.it.json rename to solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/MarkToDo/MarkToDoResponses.it.json diff --git a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/MarkToDo/Resources/MarkToDoResponses.json b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/MarkToDo/MarkToDoResponses.json similarity index 100% rename from solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/MarkToDo/Resources/MarkToDoResponses.json rename to solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/MarkToDo/MarkToDoResponses.json diff --git a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/MarkToDo/Resources/MarkToDoResponses.tt b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/MarkToDo/MarkToDoResponses.tt similarity index 58% rename from solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/MarkToDo/Resources/MarkToDoResponses.tt rename to solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/MarkToDo/MarkToDoResponses.tt index d636d96c8b..e5404a9ce4 100644 --- a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/MarkToDo/Resources/MarkToDoResponses.tt +++ b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/MarkToDo/MarkToDoResponses.tt @@ -1,3 +1,3 @@ <#@ template debug="false" hostspecific="true" language="C#" #> <#@ output extension=".cs" #> -<#@ include file="..\..\Shared\Resources\ResponseIdCollection.t4"#> +<#@ include file="..\Shared\ResponseIdCollection.t4"#> diff --git a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/MarkToDo/Resources/MarkToDoResponses.zh.json b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/MarkToDo/MarkToDoResponses.zh.json similarity index 100% rename from solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/MarkToDo/Resources/MarkToDoResponses.zh.json rename to solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/MarkToDo/MarkToDoResponses.zh.json diff --git a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/Shared/Resources/IconImageSource.cs b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/Shared/IconImageSource.cs similarity index 100% rename from solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/Shared/Resources/IconImageSource.cs rename to solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/Shared/IconImageSource.cs diff --git a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/Shared/Resources/ResponseIdCollection.t4 b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/Shared/ResponseIdCollection.t4 similarity index 100% rename from solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/Shared/Resources/ResponseIdCollection.t4 rename to solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/Shared/ResponseIdCollection.t4 diff --git a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/Shared/Resources/ToDoSharedResponses.cs b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/Shared/ToDoSharedResponses.cs similarity index 96% rename from solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/Shared/Resources/ToDoSharedResponses.cs rename to solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/Shared/ToDoSharedResponses.cs index 62f04f3c43..c71010f637 100644 --- a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/Shared/Resources/ToDoSharedResponses.cs +++ b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/Shared/ToDoSharedResponses.cs @@ -4,7 +4,7 @@ using Microsoft.Bot.Builder.Solutions.Responses; -namespace ToDoSkill.Dialogs.Shared.Resources +namespace ToDoSkill.Responses.Shared { /// /// Contains bot responses. diff --git a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/Shared/Resources/ToDoSharedResponses.de.json b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/Shared/ToDoSharedResponses.de.json similarity index 100% rename from solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/Shared/Resources/ToDoSharedResponses.de.json rename to solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/Shared/ToDoSharedResponses.de.json diff --git a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/Shared/Resources/ToDoSharedResponses.es.json b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/Shared/ToDoSharedResponses.es.json similarity index 100% rename from solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/Shared/Resources/ToDoSharedResponses.es.json rename to solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/Shared/ToDoSharedResponses.es.json diff --git a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/Shared/Resources/ToDoSharedResponses.fr.json b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/Shared/ToDoSharedResponses.fr.json similarity index 100% rename from solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/Shared/Resources/ToDoSharedResponses.fr.json rename to solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/Shared/ToDoSharedResponses.fr.json diff --git a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/Shared/Resources/ToDoSharedResponses.it.json b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/Shared/ToDoSharedResponses.it.json similarity index 100% rename from solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/Shared/Resources/ToDoSharedResponses.it.json rename to solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/Shared/ToDoSharedResponses.it.json diff --git a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/Shared/Resources/ToDoSharedResponses.json b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/Shared/ToDoSharedResponses.json similarity index 100% rename from solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/Shared/Resources/ToDoSharedResponses.json rename to solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/Shared/ToDoSharedResponses.json diff --git a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/Shared/Resources/ToDoSharedResponses.tt b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/Shared/ToDoSharedResponses.tt similarity index 58% rename from solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/Shared/Resources/ToDoSharedResponses.tt rename to solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/Shared/ToDoSharedResponses.tt index d636d96c8b..e5404a9ce4 100644 --- a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/Shared/Resources/ToDoSharedResponses.tt +++ b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/Shared/ToDoSharedResponses.tt @@ -1,3 +1,3 @@ <#@ template debug="false" hostspecific="true" language="C#" #> <#@ output extension=".cs" #> -<#@ include file="..\..\Shared\Resources\ResponseIdCollection.t4"#> +<#@ include file="..\Shared\ResponseIdCollection.t4"#> diff --git a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/Shared/Resources/ToDoSharedResponses.zh.json b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/Shared/ToDoSharedResponses.zh.json similarity index 100% rename from solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/Shared/Resources/ToDoSharedResponses.zh.json rename to solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/Shared/ToDoSharedResponses.zh.json diff --git a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/Shared/Resources/ToDoStrings.Designer.cs b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/Shared/ToDoStrings.Designer.cs similarity index 97% rename from solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/Shared/Resources/ToDoStrings.Designer.cs rename to solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/Shared/ToDoStrings.Designer.cs index fa3962fda1..d079894cfb 100644 --- a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/Shared/Resources/ToDoStrings.Designer.cs +++ b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/Shared/ToDoStrings.Designer.cs @@ -8,7 +8,7 @@ // //------------------------------------------------------------------------------ -namespace ToDoSkill.Dialogs.Shared.Resources { +namespace ToDoSkill.Responses.Shared { using System; @@ -39,7 +39,7 @@ internal ToDoStrings() { public static global::System.Resources.ResourceManager ResourceManager { get { if (object.ReferenceEquals(resourceMan, null)) { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("ToDoSkill.Dialogs.Shared.Resources.ToDoStrings", typeof(ToDoStrings).Assembly); + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("ToDoSkill.Responses.Shared.ToDoStrings", typeof(ToDoStrings).Assembly); resourceMan = temp; } return resourceMan; diff --git a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/Shared/Resources/ToDoStrings.de.resx b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/Shared/ToDoStrings.de.resx similarity index 100% rename from solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/Shared/Resources/ToDoStrings.de.resx rename to solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/Shared/ToDoStrings.de.resx diff --git a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/Shared/Resources/ToDoStrings.es.resx b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/Shared/ToDoStrings.es.resx similarity index 100% rename from solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/Shared/Resources/ToDoStrings.es.resx rename to solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/Shared/ToDoStrings.es.resx diff --git a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/Shared/Resources/ToDoStrings.fr.resx b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/Shared/ToDoStrings.fr.resx similarity index 100% rename from solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/Shared/Resources/ToDoStrings.fr.resx rename to solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/Shared/ToDoStrings.fr.resx diff --git a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/Shared/Resources/ToDoStrings.it.resx b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/Shared/ToDoStrings.it.resx similarity index 100% rename from solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/Shared/Resources/ToDoStrings.it.resx rename to solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/Shared/ToDoStrings.it.resx diff --git a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/Shared/Resources/ToDoStrings.resx b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/Shared/ToDoStrings.resx similarity index 100% rename from solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/Shared/Resources/ToDoStrings.resx rename to solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/Shared/ToDoStrings.resx diff --git a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/Shared/Resources/ToDoStrings.zh.resx b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/Shared/ToDoStrings.zh.resx similarity index 100% rename from solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/Shared/Resources/ToDoStrings.zh.resx rename to solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/Shared/ToDoStrings.zh.resx diff --git a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/ShowToDo/Resources/ShowToDoResponses.cs b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/ShowToDo/ShowToDoResponses.cs similarity index 97% rename from solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/ShowToDo/Resources/ShowToDoResponses.cs rename to solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/ShowToDo/ShowToDoResponses.cs index fc95ba5e94..11d902f489 100644 --- a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/ShowToDo/Resources/ShowToDoResponses.cs +++ b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/ShowToDo/ShowToDoResponses.cs @@ -4,7 +4,7 @@ using Microsoft.Bot.Builder.Solutions.Responses; -namespace ToDoSkill.Dialogs.ShowToDo.Resources +namespace ToDoSkill.Responses.ShowToDo { /// /// Contains bot responses. diff --git a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/ShowToDo/Resources/ShowToDoResponses.de.json b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/ShowToDo/ShowToDoResponses.de.json similarity index 100% rename from solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/ShowToDo/Resources/ShowToDoResponses.de.json rename to solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/ShowToDo/ShowToDoResponses.de.json diff --git a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/ShowToDo/Resources/ShowToDoResponses.es.json b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/ShowToDo/ShowToDoResponses.es.json similarity index 100% rename from solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/ShowToDo/Resources/ShowToDoResponses.es.json rename to solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/ShowToDo/ShowToDoResponses.es.json diff --git a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/ShowToDo/Resources/ShowToDoResponses.fr.json b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/ShowToDo/ShowToDoResponses.fr.json similarity index 100% rename from solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/ShowToDo/Resources/ShowToDoResponses.fr.json rename to solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/ShowToDo/ShowToDoResponses.fr.json diff --git a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/ShowToDo/Resources/ShowToDoResponses.it.json b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/ShowToDo/ShowToDoResponses.it.json similarity index 100% rename from solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/ShowToDo/Resources/ShowToDoResponses.it.json rename to solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/ShowToDo/ShowToDoResponses.it.json diff --git a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/ShowToDo/Resources/ShowToDoResponses.json b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/ShowToDo/ShowToDoResponses.json similarity index 100% rename from solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/ShowToDo/Resources/ShowToDoResponses.json rename to solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/ShowToDo/ShowToDoResponses.json diff --git a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/ShowToDo/Resources/ShowToDoResponses.tt b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/ShowToDo/ShowToDoResponses.tt similarity index 58% rename from solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/ShowToDo/Resources/ShowToDoResponses.tt rename to solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/ShowToDo/ShowToDoResponses.tt index d636d96c8b..e5404a9ce4 100644 --- a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/ShowToDo/Resources/ShowToDoResponses.tt +++ b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/ShowToDo/ShowToDoResponses.tt @@ -1,3 +1,3 @@ <#@ template debug="false" hostspecific="true" language="C#" #> <#@ output extension=".cs" #> -<#@ include file="..\..\Shared\Resources\ResponseIdCollection.t4"#> +<#@ include file="..\Shared\ResponseIdCollection.t4"#> diff --git a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/ShowToDo/Resources/ShowToDoResponses.zh.json b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/ShowToDo/ShowToDoResponses.zh.json similarity index 100% rename from solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/ShowToDo/Resources/ShowToDoResponses.zh.json rename to solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Responses/ShowToDo/ShowToDoResponses.zh.json diff --git a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Services/BotServices.cs b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Services/BotServices.cs new file mode 100644 index 0000000000..0d6a784f3a --- /dev/null +++ b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Services/BotServices.cs @@ -0,0 +1,55 @@ +using System.Collections.Generic; +using Microsoft.Bot.Builder.AI.Luis; +using Microsoft.Bot.Builder.AI.QnA; +using Microsoft.Bot.Builder.Solutions; +using Microsoft.Bot.Builder.Solutions.Telemetry; + +namespace ToDoSkill.Services +{ + public class BotServices + { + public BotServices(BotSettings settings) + { + foreach (var pair in settings.CognitiveModels) + { + var set = new CognitiveModelSet(); + var language = pair.Key; + var config = pair.Value; + + if (config.DispatchModel != null) + { + var dispatchApp = new LuisApplication(config.DispatchModel.AppId, config.DispatchModel.SubscriptionKey, config.DispatchModel.GetEndpoint()); + set.DispatchService = new TelemetryLuisRecognizer(dispatchApp); + } + + if (config.LanguageModels != null) + { + foreach (var model in config.LanguageModels) + { + var luisApp = new LuisApplication(model.AppId, model.SubscriptionKey, model.GetEndpoint()); + set.LuisServices.Add(model.Id, new TelemetryLuisRecognizer(luisApp)); + } + } + + if (config.Knowledgebases != null) + { + foreach (var kb in config.Knowledgebases) + { + var qnaEndpoint = new QnAMakerEndpoint() + { + KnowledgeBaseId = kb.KbId, + EndpointKey = kb.EndpointKey, + Host = kb.Hostname, + }; + var qnaMaker = new TelemetryQnAMaker(qnaEndpoint); + set.QnAServices.Add(kb.Id, qnaMaker); + } + } + + CognitiveModelSets.Add(language, set); + } + } + + public Dictionary CognitiveModelSets { get; set; } = new Dictionary(); + } +} diff --git a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Services/BotSettings.cs b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Services/BotSettings.cs new file mode 100644 index 0000000000..a10df6a8e8 --- /dev/null +++ b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Services/BotSettings.cs @@ -0,0 +1,52 @@ +using System.Collections.Generic; +using Microsoft.ApplicationInsights.Extensibility; +using Microsoft.Bot.Builder.Azure; +using Microsoft.Bot.Configuration; +using ToDoSkill.Models; + +namespace ToDoSkill.Services +{ + public class BotSettings + { + public string MicrosoftAppId { get; set; } + + public string MicrosoftAppPassword { get; set; } + + public string DefaultLocale { get; set; } + + public List OAuthConnections { get; set; } + + public CosmosDbStorageOptions CosmosDb { get; set; } + + public TelemetryConfiguration AppInsights { get; set; } + + public BlobStorageConfiguration BlobStorage { get; set; } + + public ContentModeratorConfiguration ContentModerator { get; set; } + + public Dictionary CognitiveModels { get; set; } + + public Dictionary Properties { get; set; } + + public class BlobStorageConfiguration + { + public string ConnectionString { get; set; } + + public string Container { get; set; } + } + + public class ContentModeratorConfiguration + { + public string Key { get; set; } + } + + public class CognitiveModelConfiguration + { + public DispatchService DispatchModel { get; set; } + + public List LanguageModels { get; set; } + + public List Knowledgebases { get; set; } + } + } +} \ No newline at end of file diff --git a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/ServiceClients/IMailService.cs b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Services/IMailService.cs similarity index 100% rename from solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/ServiceClients/IMailService.cs rename to solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Services/IMailService.cs diff --git a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/ServiceClients/IServiceManager.cs b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Services/IServiceManager.cs similarity index 90% rename from solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/ServiceClients/IServiceManager.cs rename to solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Services/IServiceManager.cs index 65db916f12..56ed6ad51f 100644 --- a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/ServiceClients/IServiceManager.cs +++ b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Services/IServiceManager.cs @@ -5,6 +5,7 @@ namespace ToDoSkill.ServiceClients { using System.Collections.Generic; using global::ToDoSkill.Dialogs.Shared; + using ToDoSkill.Models; public interface IServiceManager { @@ -15,7 +16,7 @@ public interface IServiceManager /// Task list name and id dictionary. /// The task service type. /// Task service itself. - ITaskService InitTaskService(string token, Dictionary listTypeIds, ServiceProviderTypes.ProviderTypes taskServiceType); + ITaskService InitTaskService(string token, Dictionary listTypeIds, ServiceProviderType taskServiceType); /// /// Init mail service. diff --git a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/ServiceClients/ITaskService.cs b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Services/ITaskService.cs similarity index 100% rename from solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/ServiceClients/ITaskService.cs rename to solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Services/ITaskService.cs diff --git a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/ServiceClients/MailService.cs b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Services/MailService.cs similarity index 100% rename from solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/ServiceClients/MailService.cs rename to solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Services/MailService.cs diff --git a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/ServiceClients/OneNoteService.cs b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Services/OneNoteService.cs similarity index 99% rename from solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/ServiceClients/OneNoteService.cs rename to solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Services/OneNoteService.cs index 935fe28d98..03b852cf2c 100644 --- a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/ServiceClients/OneNoteService.cs +++ b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Services/OneNoteService.cs @@ -14,6 +14,7 @@ namespace ToDoSkill.ServiceClients using Microsoft.Graph; using Newtonsoft.Json; using Newtonsoft.Json.Linq; + using ToDoSkill.Responses.Shared; /// /// To Do bot service. diff --git a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/ServiceClients/OutlookService.cs b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Services/OutlookService.cs similarity index 99% rename from solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/ServiceClients/OutlookService.cs rename to solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Services/OutlookService.cs index 17679eb71b..c5719eafbb 100644 --- a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/ServiceClients/OutlookService.cs +++ b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Services/OutlookService.cs @@ -11,6 +11,7 @@ namespace ToDoSkill.ServiceClients using global::ToDoSkill.Models; using Microsoft.Graph; using Newtonsoft.Json.Linq; + using ToDoSkill.Responses.Shared; /// /// To Do bot service. diff --git a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/ServiceClients/ServiceHelper.cs b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Services/ServiceHelper.cs similarity index 100% rename from solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/ServiceClients/ServiceHelper.cs rename to solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Services/ServiceHelper.cs diff --git a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/ServiceClients/ServiceManager.cs b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Services/ServiceManager.cs similarity index 90% rename from solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/ServiceClients/ServiceManager.cs rename to solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Services/ServiceManager.cs index 7a8f2bb85b..49bacd4211 100644 --- a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/ServiceClients/ServiceManager.cs +++ b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Services/ServiceManager.cs @@ -5,6 +5,7 @@ namespace ToDoSkill.ServiceClients { using System.Collections.Generic; using global::ToDoSkill.Dialogs.Shared; + using ToDoSkill.Models; public class ServiceManager : IServiceManager { @@ -15,10 +16,10 @@ public class ServiceManager : IServiceManager /// Task list name and id dictionary. /// The task service type. /// Task service itself. - public ITaskService InitTaskService(string token, Dictionary listTypeIds, ServiceProviderTypes.ProviderTypes taskServiceType) + public ITaskService InitTaskService(string token, Dictionary listTypeIds, ServiceProviderType taskServiceType) { ITaskService taskService; - if (taskServiceType == ServiceProviderTypes.ProviderTypes.OneNote) + if (taskServiceType == ServiceProviderType.OneNote) { var oneNoteService = new OneNoteService(); taskService = oneNoteService.InitAsync(token, listTypeIds).Result; diff --git a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/Shared/Resources/ToDoLU.cs b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Services/ToDoLuis.cs similarity index 100% rename from solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Dialogs/Shared/Resources/ToDoLU.cs rename to solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Services/ToDoLuis.cs diff --git a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Startup.cs b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Startup.cs index c31f8e35eb..4a0fc0caef 100644 --- a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Startup.cs +++ b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/Startup.cs @@ -1,52 +1,51 @@ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. -using System; -using System.Collections.Generic; -using System.Globalization; using System.Linq; -using System.Threading.Tasks; +using Microsoft.ApplicationInsights; using Microsoft.AspNetCore.Authentication.JwtBearer; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Microsoft.Bot.Builder; +using Microsoft.Bot.Builder.ApplicationInsights; using Microsoft.Bot.Builder.Azure; +using Microsoft.Bot.Builder.BotFramework; using Microsoft.Bot.Builder.Integration.ApplicationInsights.Core; using Microsoft.Bot.Builder.Integration.AspNet.Core; using Microsoft.Bot.Builder.Skills; using Microsoft.Bot.Builder.Skills.Auth; -using Microsoft.Bot.Builder.Solutions.Middleware; using Microsoft.Bot.Builder.Solutions.Proactive; using Microsoft.Bot.Builder.Solutions.Responses; -using Microsoft.Bot.Builder.Solutions.Skills; using Microsoft.Bot.Builder.Solutions.TaskExtensions; -using Microsoft.Bot.Builder.Solutions.Telemetry; -using Microsoft.Bot.Configuration; using Microsoft.Bot.Connector.Authentication; -using Microsoft.Bot.Schema; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.IdentityModel.Tokens; -using ToDoSkill.Dialogs.AddToDo.Resources; -using ToDoSkill.Dialogs.DeleteToDo.Resources; -using ToDoSkill.Dialogs.Main.Resources; -using ToDoSkill.Dialogs.MarkToDo.Resources; -using ToDoSkill.Dialogs.Shared.Resources; -using ToDoSkill.Dialogs.ShowToDo.Resources; +using ToDoSkill.Adapters; +using ToDoSkill.Dialogs; +using ToDoSkill.Responses.AddToDo; +using ToDoSkill.Responses.DeleteToDo; +using ToDoSkill.Responses.Main; +using ToDoSkill.Responses.MarkToDo; +using ToDoSkill.Responses.Shared; +using ToDoSkill.Responses.ShowToDo; using ToDoSkill.ServiceClients; +using ToDoSkill.Services; namespace ToDoSkill { public class Startup { - private bool _isProduction = false; - public Startup(IHostingEnvironment env) { var builder = new ConfigurationBuilder() .SetBasePath(env.ContentRootPath) .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true) .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true) + .AddJsonFile("cognitivemodels.json", optional: true) + .AddJsonFile($"cognitivemodels.{env.EnvironmentName}.json", optional: true) + .AddJsonFile("skills.json", optional: true) + .AddJsonFile($"skills.{env.EnvironmentName}.json", optional: true) .AddEnvironmentVariables(); Configuration = builder.Build(); @@ -56,79 +55,60 @@ public Startup(IHostingEnvironment env) public void ConfigureServices(IServiceCollection services) { - services.AddMvc().SetCompatibilityVersion(Microsoft.AspNetCore.Mvc.CompatibilityVersion.Version_2_2); + services.AddMvc().SetCompatibilityVersion(Microsoft.AspNetCore.Mvc.CompatibilityVersion.Version_2_1); + + // Load settings + var settings = new BotSettings(); + Configuration.Bind(settings); + services.AddSingleton(settings); + + // Configure bot services + services.AddSingleton(); + + // Configure credentials + services.AddSingleton(); + + // Configure bot state + services.AddSingleton(new CosmosDbStorage(settings.CosmosDb)); + services.AddSingleton(); + services.AddSingleton(); + services.AddSingleton(); + services.AddSingleton(sp => + { + var userState = sp.GetService(); + var conversationState = sp.GetService(); + var proactiveState = sp.GetService(); + return new BotStateSet(userState, conversationState); + }); + + // Configure telemetry + var telemetryClient = new BotTelemetryClient(new TelemetryClient(settings.AppInsights)); + services.AddSingleton(telemetryClient); + services.AddBotApplicationInsights(telemetryClient); - // add background task queue + // Configure proactive services.AddSingleton(); services.AddHostedService(); - // Load the connected services from .bot file. - var botFilePath = Configuration.GetSection("botFilePath")?.Value; - var botFileSecret = Configuration.GetSection("botFileSecret")?.Value; - var botConfig = BotConfiguration.Load(botFilePath ?? @".\ToDoSkill.bot", botFileSecret); - services.AddSingleton(sp => botConfig ?? throw new InvalidOperationException($"The .bot config file could not be loaded.")); - - // Use Application Insights - services.AddBotApplicationInsights(botConfig); - - // Initializes your bot service clients and adds a singleton that your Bot can access through dependency injection. - var parameters = Configuration.GetSection("parameters")?.Get(); - var configuration = Configuration.GetSection("configuration")?.GetChildren()?.ToDictionary(x => x.Key, y => y.Value as object); - var supportedProviders = Configuration.GetSection("supportedProviders")?.Get(); - var languageModels = Configuration.GetSection("languageModels").Get>>(); - var connectedServices = new SkillConfiguration(botConfig, languageModels, supportedProviders, parameters, configuration); - services.AddSingleton(sp => connectedServices); - - var supportedLanguages = languageModels.Select(l => l.Key).ToArray(); - var responseManager = new ResponseManager( - supportedLanguages, + // Configure service manager + services.AddTransient(); + + // Configure responses + services.AddSingleton(sp => new ResponseManager( + settings.CognitiveModels.Select(l => l.Key).ToArray(), new AddToDoResponses(), new DeleteToDoResponses(), new ToDoMainResponses(), new MarkToDoResponses(), new ToDoSharedResponses(), - new ShowToDoResponses()); - - // Register bot responses for all supported languages. - services.AddSingleton(sp => responseManager); - - var defaultLocale = Configuration.GetSection("defaultLocale").Get(); - - // Initialize Bot State - var cosmosDbService = botConfig.Services.FirstOrDefault(s => s.Type == ServiceTypes.CosmosDB) ?? throw new Exception("Please configure your CosmosDb service in your .bot file."); - var cosmosDb = cosmosDbService as CosmosDbService; - var cosmosOptions = new CosmosDbStorageOptions() - { - CosmosDBEndpoint = new Uri(cosmosDb.Endpoint), - AuthKey = cosmosDb.Key, - CollectionId = cosmosDb.Collection, - DatabaseId = cosmosDb.Database, - }; - var dataStore = new CosmosDbStorage(cosmosOptions); - var userState = new UserState(dataStore); - var conversationState = new ConversationState(dataStore); - var proactiveState = new ProactiveState(dataStore); - - services.AddSingleton(dataStore); - services.AddSingleton(userState); - services.AddSingleton(conversationState); - services.AddSingleton(proactiveState); - services.AddSingleton(new BotStateSet(userState, conversationState)); - - var environment = _isProduction ? "production" : "development"; - var service = botConfig.Services.FirstOrDefault(s => s.Type == ServiceTypes.Endpoint && s.Name == environment); - if (!(service is EndpointService endpointService)) - { - throw new InvalidOperationException($"The .bot file does not contain an endpoint with name '{environment}'."); - } - - services.AddSingleton(endpointService); + new ShowToDoResponses())); + // Configure Skill authentication services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme) .AddJwtBearer(options => { options.Authority = "https://login.microsoftonline.com/microsoft.com"; - options.Audience = endpointService.AppId; + options.Audience = settings.MicrosoftAppId; options.TokenValidationParameters = new TokenValidationParameters { ValidIssuer = "https://login.microsoftonline.com/72f988bf-86f1-41af-91ab-2d7cd011db47/v2.0", @@ -138,70 +118,13 @@ public void ConfigureServices(IServiceCollection services) services.AddSingleton(); services.AddSingleton(); - services.AddTransient(); - - // Add the bot - services.AddTransient(); - - var credentialProvider = new SimpleCredentialProvider(endpointService.AppId, endpointService.AppPassword); + // Configure adapters + services.AddTransient(); + services.AddTransient(); - // Create the middlewares - var telemetryClient = services.BuildServiceProvider().GetService(); - var appInsightsLogger = new TelemetryLoggerMiddleware(telemetryClient, logPersonalInformation: true); - - var storageService = botConfig.Services.FirstOrDefault(s => s.Type == ServiceTypes.BlobStorage) ?? throw new Exception("Please configure your Azure Storage service in your .bot file."); - var blobStorage = storageService as BlobStorageService; - var transcriptStore = new AzureBlobTranscriptStore(blobStorage.ConnectionString, blobStorage.Container); - var transcriptMiddleware = new TranscriptLoggerMiddleware(transcriptStore); - - var typingMiddleware = new ShowTypingMiddleware(); - var setLocaleMiddleware = new SetLocaleMiddleware(defaultLocale ?? "en-us"); - var eventDebuggerMiddleware = new EventDebuggerMiddleware(); - var autoSaveStateMiddleware = new AutoSaveStateMiddleware(userState, conversationState); - - Func onTurnError = async (context, exception) => - { - CultureInfo.CurrentUICulture = new CultureInfo(context.Activity.Locale); - await context.SendActivityAsync(responseManager.GetResponse(ToDoSharedResponses.ToDoErrorMessage)); - await context.SendActivityAsync(new Activity(type: ActivityTypes.Trace, text: $"To Do Skill Error: {exception.Message} | {exception.StackTrace}")); - telemetryClient.TrackExceptionEx(exception, context.Activity); - }; - - // Add the http adapter with middlewares - services.AddTransient(sp => - { - var botFrameworkHttpAdapter = new BotFrameworkHttpAdapter(credentialProvider) - { - OnTurnError = onTurnError - }; - - botFrameworkHttpAdapter.Use(appInsightsLogger); - botFrameworkHttpAdapter.Use(transcriptMiddleware); - botFrameworkHttpAdapter.Use(typingMiddleware); - botFrameworkHttpAdapter.Use(setLocaleMiddleware); - botFrameworkHttpAdapter.Use(eventDebuggerMiddleware); - botFrameworkHttpAdapter.Use(autoSaveStateMiddleware); - - return botFrameworkHttpAdapter; - }); - - // Add the SkillAdapter with middlewares - services.AddTransient(sp => - { - var skillAdapter = new SkillAdapter(credentialProvider) - { - OnTurnError = onTurnError - }; - - skillAdapter.Use(appInsightsLogger); - skillAdapter.Use(transcriptMiddleware); - skillAdapter.Use(typingMiddleware); - skillAdapter.Use(setLocaleMiddleware); - skillAdapter.Use(eventDebuggerMiddleware); - skillAdapter.Use(autoSaveStateMiddleware); - - return skillAdapter; - }); + // Configure bot + services.AddTransient(); + services.AddTransient>(); } /// @@ -211,7 +134,11 @@ public void ConfigureServices(IServiceCollection services) /// Hosting Environment. public void Configure(IApplicationBuilder app, IHostingEnvironment env) { - _isProduction = env.IsProduction(); + if (env.IsDevelopment()) + { + app.UseDeveloperExceptionPage(); + } + app.UseBotApplicationInsights() .UseDefaultFiles() .UseStaticFiles() diff --git a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/ToDoSkill.cs b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/ToDoSkill.cs deleted file mode 100644 index 645dbb602e..0000000000 --- a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/ToDoSkill.cs +++ /dev/null @@ -1,100 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -using System; -using System.Linq; -using System.Threading; -using System.Threading.Tasks; -using Microsoft.Bot.Builder; -using Microsoft.Bot.Builder.Dialogs; -using Microsoft.Bot.Builder.Solutions.Proactive; -using Microsoft.Bot.Builder.Solutions.Responses; -using Microsoft.Bot.Builder.Solutions.Skills; -using Microsoft.Bot.Builder.Solutions.TaskExtensions; -using Microsoft.Bot.Builder.Solutions.Telemetry; -using Microsoft.Bot.Configuration; -using ToDoSkill.Dialogs.AddToDo.Resources; -using ToDoSkill.Dialogs.DeleteToDo.Resources; -using ToDoSkill.Dialogs.Main; -using ToDoSkill.Dialogs.Main.Resources; -using ToDoSkill.Dialogs.MarkToDo.Resources; -using ToDoSkill.Dialogs.Shared.Resources; -using ToDoSkill.Dialogs.ShowToDo.Resources; -using ToDoSkill.ServiceClients; - -namespace ToDoSkill -{ - /// - /// Main entry point and orchestration for bot. - /// - public class ToDoSkill : IBot - { - private readonly SkillConfigurationBase _services; - private readonly ResponseManager _responseManager; - private readonly ConversationState _conversationState; - private readonly UserState _userState; - private readonly IBotTelemetryClient _telemetryClient; - private IServiceManager _serviceManager; - private DialogSet _dialogs; - private bool _skillMode; - - public ToDoSkill( - SkillConfigurationBase services, - EndpointService endpointService, - ConversationState conversationState, - UserState userState, - ProactiveState proactiveState, - IBotTelemetryClient telemetryClient, - IBackgroundTaskQueue backgroundTaskQueue, - bool skillMode = false, - ResponseManager responseManager = null, - IServiceManager serviceManager = null) - { - _skillMode = skillMode; - _services = services ?? throw new ArgumentNullException(nameof(services)); - _userState = userState ?? throw new ArgumentNullException(nameof(userState)); - _conversationState = conversationState ?? throw new ArgumentNullException(nameof(conversationState)); - _telemetryClient = telemetryClient ?? throw new ArgumentNullException(nameof(telemetryClient)); - _serviceManager = serviceManager ?? new ServiceManager(); - - if (responseManager == null) - { - var supportedLanguages = services.LocaleConfigurations.Keys.ToArray(); - responseManager = new ResponseManager( - supportedLanguages, - new AddToDoResponses(), - new DeleteToDoResponses(), - new ToDoMainResponses(), - new MarkToDoResponses(), - new ToDoSharedResponses(), - new ShowToDoResponses()); - } - - _responseManager = responseManager; - _dialogs = new DialogSet(_conversationState.CreateProperty(nameof(DialogState))); - _dialogs.Add(new MainDialog(_services, _responseManager, _conversationState, _userState, _telemetryClient, _serviceManager, _skillMode)); - } - - /// - /// Run every turn of the conversation. Handles orchestration of messages. - /// - /// Bot Turn Context. - /// Task CancellationToken. - /// A representing the asynchronous operation. - public async Task OnTurnAsync(ITurnContext turnContext, CancellationToken cancellationToken) - { - turnContext.TurnState.TryAdd(TelemetryLoggerMiddleware.AppInsightsServiceKey, _telemetryClient); - - var dc = await _dialogs.CreateContextAsync(turnContext); - - if (dc.ActiveDialog != null) - { - var result = await dc.ContinueDialogAsync(); - } - else - { - await dc.BeginDialogAsync(nameof(MainDialog)); - } - } - } -} \ No newline at end of file diff --git a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/ToDoSkill.csproj b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/ToDoSkill.csproj index bf23066113..f509532ec1 100644 --- a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/ToDoSkill.csproj +++ b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/ToDoSkill.csproj @@ -6,6 +6,17 @@ ..\..\..\VirtualAssistant.ruleset + + + + + + + + + + + @@ -19,7 +30,7 @@ - + @@ -30,42 +41,42 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -73,37 +84,37 @@ - + True True AddToDoResponses.tt - + True True DeleteToDoResponses.tt - + True True ToDoMainResponses.tt - + True True MarkToDoResponses.tt - + True True ToDoSharedResponses.tt - + True True ToDoStrings.resx - + True True ShowToDoResponses.tt @@ -111,7 +122,7 @@ - + PublicResXFileCodeGenerator ToDoStrings.Designer.cs @@ -127,27 +138,27 @@ - + TextTemplatingFileGenerator AddToDoResponses.cs - + DeleteToDoResponses.cs TextTemplatingFileGenerator - + ToDoMainResponses.cs TextTemplatingFileGenerator - + MarkToDoResponses.cs TextTemplatingFileGenerator - + ToDoSharedResponses.cs TextTemplatingFileGenerator - + ShowToDoResponses.cs TextTemplatingFileGenerator @@ -157,4 +168,8 @@ + + + + diff --git a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/appsettings.json b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/appsettings.json index fe85e11c71..0212b94b53 100644 --- a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/appsettings.json +++ b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/appsettings.json @@ -1,24 +1,28 @@ { - "botFilePath": "./YOUR_BOT_PATH.bot", - "botFileSecret": "", - "defaultLocale": "en-us", - "languageModels": { - "en": { - "botFilePath": "./LocaleConfigurations/YOUR_EN_BOT_PATH.bot", - "botFileSecret": "" - }, - "zh": { - "botFilePath": "./LocaleConfigurations/YOUR_ZH_BOT_PATH.bot", - "botFileSecret": "" + "microsoftAppId": "", + "microsoftAppPassword": "", + "oauthConnections": [ + { + "name": "", + "provider": "Azure Active Directory v2" } - }, - "supportedProviders": [ - "Azure Active Directory v2", - "Google" ], - "parameters": [], - "configuration": { - "TaskServiceProvider": "Outlook", - "DisplaySize": "4" + "appInsights": { + "appId": "", + "instrumentationKey": "" + }, + "blobStorage": { + "connectionString": "", + "container": "transcripts" + }, + "cosmosDb": { + "collectionId": "botstate-collection", + "databaseId": "botstate-db", + "cosmosDBEndpoint": "", + "authKey": "" + }, + "properties": { + "DisplaySize": 5, + "TaskServiceProvider": "Outlook" } } \ No newline at end of file diff --git a/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/cognitivemodels.json b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/cognitivemodels.json new file mode 100644 index 0000000000..0234737717 --- /dev/null +++ b/solutions/Virtual-Assistant/src/csharp/skills/todoskill/todoskill/cognitivemodels.json @@ -0,0 +1,27 @@ +{ + "cognitiveModels": { + "en": { + "languageModels": [ + { + "id": "general", + "name": "", + "appId": "", + "authoringKey": "", + "subscriptionKey": "", + "version": "", + "region": "" + }, + { + "id": "todo", + "name": "", + "appId": "", + "authoringKey": "", + "subscriptionKey": "", + "version": "", + "region": "" + } + ] + } + }, + "defaultLocale": "en-us" +} \ No newline at end of file diff --git a/templates/Virtual-Assistant-Template/VirtualAssistantTemplate.sln b/templates/Virtual-Assistant-Template/VirtualAssistantTemplate.sln index 698d443e8f..5748103f68 100644 --- a/templates/Virtual-Assistant-Template/VirtualAssistantTemplate.sln +++ b/templates/Virtual-Assistant-Template/VirtualAssistantTemplate.sln @@ -11,6 +11,22 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Bot.Builder.Skill EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Bot.Builder.Skills.Tests", "..\..\lib\csharp\microsoft.bot.builder.skills\Microsoft.Bot.Builder.Skills.Tests\Microsoft.Bot.Builder.Skills.Tests.csproj", "{C4527913-0F04-47E7-AEBE-89938CA40C56}" EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Skills", "Skills", "{C4600362-8248-40AE-955D-8C7BE6D8CC49}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CalendarSkill", "..\..\solutions\Virtual-Assistant\src\csharp\skills\calendarskill\calendarskill\CalendarSkill.csproj", "{F922B40F-5ABD-4670-BAB2-BC28AD28DDA7}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EmailSkill", "..\..\solutions\Virtual-Assistant\src\csharp\skills\emailskill\emailskill\EmailSkill.csproj", "{13C7AB51-12FE-4298-BE6A-5D66B5EF5791}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ToDoSkill", "..\..\solutions\Virtual-Assistant\src\csharp\skills\todoskill\todoskill\ToDoSkill.csproj", "{61E39158-9BC6-467E-979E-F1BE4AF46245}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AutomotiveSkill", "..\..\solutions\Virtual-Assistant\src\csharp\skills\automotiveskill\automotiveskill\AutomotiveSkill.csproj", "{01DDE884-123D-480B-A8D4-553B9BDE30EE}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PointOfInterestSkill", "..\..\solutions\Virtual-Assistant\src\csharp\skills\pointofinterestskill\pointofinterestskill\PointOfInterestSkill.csproj", "{B8CE5404-C1A9-43C3-BE53-17FBE7747901}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NewsSkill", "..\..\solutions\Virtual-Assistant\src\csharp\experimental\skills\newsskill\NewsSkill.csproj", "{D467B78B-72E8-44E2-B914-747A61D3E521}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "RestaurantBooking", "..\..\solutions\Virtual-Assistant\src\csharp\experimental\skills\restaurantbooking\RestaurantBooking.csproj", "{BCA5846E-5FB7-4A93-BF81-6964CE8800ED}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -33,10 +49,47 @@ Global {C4527913-0F04-47E7-AEBE-89938CA40C56}.Debug|Any CPU.Build.0 = Debug|Any CPU {C4527913-0F04-47E7-AEBE-89938CA40C56}.Release|Any CPU.ActiveCfg = Release|Any CPU {C4527913-0F04-47E7-AEBE-89938CA40C56}.Release|Any CPU.Build.0 = Release|Any CPU + {F922B40F-5ABD-4670-BAB2-BC28AD28DDA7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F922B40F-5ABD-4670-BAB2-BC28AD28DDA7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F922B40F-5ABD-4670-BAB2-BC28AD28DDA7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F922B40F-5ABD-4670-BAB2-BC28AD28DDA7}.Release|Any CPU.Build.0 = Release|Any CPU + {13C7AB51-12FE-4298-BE6A-5D66B5EF5791}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {13C7AB51-12FE-4298-BE6A-5D66B5EF5791}.Debug|Any CPU.Build.0 = Debug|Any CPU + {13C7AB51-12FE-4298-BE6A-5D66B5EF5791}.Release|Any CPU.ActiveCfg = Release|Any CPU + {13C7AB51-12FE-4298-BE6A-5D66B5EF5791}.Release|Any CPU.Build.0 = Release|Any CPU + {61E39158-9BC6-467E-979E-F1BE4AF46245}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {61E39158-9BC6-467E-979E-F1BE4AF46245}.Debug|Any CPU.Build.0 = Debug|Any CPU + {61E39158-9BC6-467E-979E-F1BE4AF46245}.Release|Any CPU.ActiveCfg = Release|Any CPU + {61E39158-9BC6-467E-979E-F1BE4AF46245}.Release|Any CPU.Build.0 = Release|Any CPU + {01DDE884-123D-480B-A8D4-553B9BDE30EE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {01DDE884-123D-480B-A8D4-553B9BDE30EE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {01DDE884-123D-480B-A8D4-553B9BDE30EE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {01DDE884-123D-480B-A8D4-553B9BDE30EE}.Release|Any CPU.Build.0 = Release|Any CPU + {B8CE5404-C1A9-43C3-BE53-17FBE7747901}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B8CE5404-C1A9-43C3-BE53-17FBE7747901}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B8CE5404-C1A9-43C3-BE53-17FBE7747901}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B8CE5404-C1A9-43C3-BE53-17FBE7747901}.Release|Any CPU.Build.0 = Release|Any CPU + {D467B78B-72E8-44E2-B914-747A61D3E521}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D467B78B-72E8-44E2-B914-747A61D3E521}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D467B78B-72E8-44E2-B914-747A61D3E521}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D467B78B-72E8-44E2-B914-747A61D3E521}.Release|Any CPU.Build.0 = Release|Any CPU + {BCA5846E-5FB7-4A93-BF81-6964CE8800ED}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BCA5846E-5FB7-4A93-BF81-6964CE8800ED}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BCA5846E-5FB7-4A93-BF81-6964CE8800ED}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BCA5846E-5FB7-4A93-BF81-6964CE8800ED}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection + GlobalSection(NestedProjects) = preSolution + {F922B40F-5ABD-4670-BAB2-BC28AD28DDA7} = {C4600362-8248-40AE-955D-8C7BE6D8CC49} + {13C7AB51-12FE-4298-BE6A-5D66B5EF5791} = {C4600362-8248-40AE-955D-8C7BE6D8CC49} + {61E39158-9BC6-467E-979E-F1BE4AF46245} = {C4600362-8248-40AE-955D-8C7BE6D8CC49} + {01DDE884-123D-480B-A8D4-553B9BDE30EE} = {C4600362-8248-40AE-955D-8C7BE6D8CC49} + {B8CE5404-C1A9-43C3-BE53-17FBE7747901} = {C4600362-8248-40AE-955D-8C7BE6D8CC49} + {D467B78B-72E8-44E2-B914-747A61D3E521} = {C4600362-8248-40AE-955D-8C7BE6D8CC49} + {BCA5846E-5FB7-4A93-BF81-6964CE8800ED} = {C4600362-8248-40AE-955D-8C7BE6D8CC49} + EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {3AE949A3-66FB-4B9A-B260-8F42B2E59837} EndGlobalSection diff --git a/templates/Virtual-Assistant-Template/VirtualAssistantTemplate/Deployment/Scripts/DispatchLuis.cs b/templates/Virtual-Assistant-Template/VirtualAssistantTemplate/Deployment/Scripts/DispatchLuis.cs new file mode 100644 index 0000000000..3913a23214 --- /dev/null +++ b/templates/Virtual-Assistant-Template/VirtualAssistantTemplate/Deployment/Scripts/DispatchLuis.cs @@ -0,0 +1,65 @@ +// +// Code generated by LUISGen Resources\Dispatch\en\LamilVA3en_Dispatch.json -cs Luis.DispatchLuis -o C:\Users\lamil\source\repos\AI\templates\Virtual-Assistant-Template\VirtualAssistantTemplate\Deployment\Scripts +// Tool github: https://github.com/microsoft/botbuilder-tools +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. +// +using Newtonsoft.Json; +using System.Collections.Generic; +using Microsoft.Bot.Builder; +using Microsoft.Bot.Builder.AI.Luis; +namespace Luis +{ + public class DispatchLuis: IRecognizerConvert + { + public string Text; + public string AlteredText; + public enum Intent { + l_general, + q_chitchat, + q_faq, + None + }; + public Dictionary Intents; + + public class _Entities + { + + // Instance + public class _Instance + { + } + [JsonProperty("$instance")] + public _Instance _instance; + } + public _Entities Entities; + + [JsonExtensionData(ReadData = true, WriteData = true)] + public IDictionary Properties {get; set; } + + public void Convert(dynamic result) + { + var app = JsonConvert.DeserializeObject(JsonConvert.SerializeObject(result)); + Text = app.Text; + AlteredText = app.AlteredText; + Intents = app.Intents; + Entities = app.Entities; + Properties = app.Properties; + } + + public (Intent intent, double score) TopIntent() + { + Intent maxIntent = Intent.None; + var max = 0.0; + foreach (var entry in Intents) + { + if (entry.Value.Score > max) + { + maxIntent = entry.Key; + max = entry.Value.Score.Value; + } + } + return (maxIntent, max); + } + } +} diff --git a/templates/Virtual-Assistant-Template/VirtualAssistantTemplate/VirtualAssistantTemplate/Bots/Adapter.cs b/templates/Virtual-Assistant-Template/VirtualAssistantTemplate/VirtualAssistantTemplate/Bots/DefaultAdapter.cs similarity index 82% rename from templates/Virtual-Assistant-Template/VirtualAssistantTemplate/VirtualAssistantTemplate/Bots/Adapter.cs rename to templates/Virtual-Assistant-Template/VirtualAssistantTemplate/VirtualAssistantTemplate/Bots/DefaultAdapter.cs index b84423a4e1..9253eb181f 100644 --- a/templates/Virtual-Assistant-Template/VirtualAssistantTemplate/VirtualAssistantTemplate/Bots/Adapter.cs +++ b/templates/Virtual-Assistant-Template/VirtualAssistantTemplate/VirtualAssistantTemplate/Bots/DefaultAdapter.cs @@ -13,14 +13,13 @@ namespace VirtualAssistantTemplate.Bots { - public class Adapter : BotFrameworkHttpAdapter + public class DefaultAdapter : BotFrameworkHttpAdapter { - public Adapter( + public DefaultAdapter( BotSettings settings, ICredentialProvider credentialProvider, - UserState userState, - ConversationState conversationState, - IBotTelemetryClient telemetryClient) : base(credentialProvider) + IBotTelemetryClient telemetryClient, + BotStateSet botStateSet) : base(credentialProvider) { OnTurnError = async (turnContext, exception) => { @@ -34,7 +33,8 @@ public Adapter( Use(new TelemetryLoggerMiddleware(telemetryClient, logPersonalInformation: true)); Use(new ShowTypingMiddleware()); Use(new SetLocaleMiddleware(settings.DefaultLocale ?? "en-us")); - Use(new AutoSaveStateMiddleware(userState, conversationState)); + Use(new EventDebuggerMiddleware()); + Use(new AutoSaveStateMiddleware(botStateSet)); } } } diff --git a/templates/Virtual-Assistant-Template/VirtualAssistantTemplate/VirtualAssistantTemplate/Bots/Bot.cs b/templates/Virtual-Assistant-Template/VirtualAssistantTemplate/VirtualAssistantTemplate/Bots/DefaultBot.cs similarity index 93% rename from templates/Virtual-Assistant-Template/VirtualAssistantTemplate/VirtualAssistantTemplate/Bots/Bot.cs rename to templates/Virtual-Assistant-Template/VirtualAssistantTemplate/VirtualAssistantTemplate/Bots/DefaultBot.cs index bfb25bb2ae..da70f839eb 100644 --- a/templates/Virtual-Assistant-Template/VirtualAssistantTemplate/VirtualAssistantTemplate/Bots/Bot.cs +++ b/templates/Virtual-Assistant-Template/VirtualAssistantTemplate/VirtualAssistantTemplate/Bots/DefaultBot.cs @@ -12,12 +12,12 @@ namespace VirtualAssistantTemplate.Bots { - public class Bot : ActivityHandler where T : Dialog + public class DefaultBot : ActivityHandler where T : Dialog { private readonly IBotTelemetryClient _telemetryClient; private DialogSet _dialogs; - public Bot(IServiceProvider serviceProvider, T dialog) + public DefaultBot(IServiceProvider serviceProvider, T dialog) { var services = serviceProvider.GetService() ?? throw new ArgumentNullException(nameof(BotServices)); var conversationState = serviceProvider.GetService() ?? throw new ArgumentNullException(nameof(ConversationState)); diff --git a/templates/Virtual-Assistant-Template/VirtualAssistantTemplate/VirtualAssistantTemplate/Dialogs/MainDialog.cs b/templates/Virtual-Assistant-Template/VirtualAssistantTemplate/VirtualAssistantTemplate/Dialogs/MainDialog.cs index 45d30ef284..a2b7b15ed6 100644 --- a/templates/Virtual-Assistant-Template/VirtualAssistantTemplate/VirtualAssistantTemplate/Dialogs/MainDialog.cs +++ b/templates/Virtual-Assistant-Template/VirtualAssistantTemplate/VirtualAssistantTemplate/Dialogs/MainDialog.cs @@ -21,6 +21,7 @@ namespace VirtualAssistantTemplate.Dialogs { public class MainDialog : RouterDialog { + private BotSettings _settings; private BotServices _services; private UserState _userState; private ConversationState _conversationState; @@ -28,6 +29,7 @@ public class MainDialog : RouterDialog private MainResponses _responder = new MainResponses(); public MainDialog( + BotSettings settings, BotServices services, ConversationState conversationState, UserState userState, @@ -35,6 +37,7 @@ public MainDialog( IBotTelemetryClient telemetryClient) : base(nameof(MainDialog), telemetryClient) { + _settings = settings; _services = services; _conversationState = conversationState; _userState = userState; @@ -44,7 +47,7 @@ public MainDialog( AddDialog(new OnboardingDialog(_services, _userState.CreateProperty(nameof(OnboardingState)), telemetryClient)); AddDialog(new EscalateDialog(_services, telemetryClient)); - foreach (var skill in services.SkillDefinitions) + foreach (var skill in settings.Skills) { AddDialog(new SkillDialog(skill, new MicrosoftAppCredentialsEx(_microsoftAppCredentials.MicrosoftAppId, _microsoftAppCredentials.MicrosoftAppPassword, skill.Scope), telemetryClient)); } @@ -66,9 +69,9 @@ public MainDialog( var dispatchResult = await cognitiveModels.DispatchService.RecognizeAsync(dc.Context, CancellationToken.None); var intent = dispatchResult.TopIntent().intent; - if (_services.SkillDefinitions.Any(s => s.DispatchIntent == intent.ToString())) + if (_settings.Skills.Any(s => s.DispatchIntent == intent.ToString())) { - var skill = _services.SkillDefinitions.Where(s => s.DispatchIntent == intent.ToString()).First(); + var skill = _settings.Skills.Where(s => s.DispatchIntent == intent.ToString()).First(); // Initialize the skill connection await dc.BeginDialogAsync(skill.Name); diff --git a/templates/Virtual-Assistant-Template/VirtualAssistantTemplate/VirtualAssistantTemplate/Models/OAuthConnection.cs b/templates/Virtual-Assistant-Template/VirtualAssistantTemplate/VirtualAssistantTemplate/Models/OAuthConnection.cs new file mode 100644 index 0000000000..cb6d148643 --- /dev/null +++ b/templates/Virtual-Assistant-Template/VirtualAssistantTemplate/VirtualAssistantTemplate/Models/OAuthConnection.cs @@ -0,0 +1,9 @@ +namespace VirtualAssistantTemplate.Models +{ + public class OAuthConnection + { + public string Name { get; set; } + + public string Provider { get; set; } + } +} diff --git a/templates/Virtual-Assistant-Template/VirtualAssistantTemplate/VirtualAssistantTemplate/Services/BotServices.cs b/templates/Virtual-Assistant-Template/VirtualAssistantTemplate/VirtualAssistantTemplate/Services/BotServices.cs index 8c93cd6f22..36a8414d5b 100644 --- a/templates/Virtual-Assistant-Template/VirtualAssistantTemplate/VirtualAssistantTemplate/Services/BotServices.cs +++ b/templates/Virtual-Assistant-Template/VirtualAssistantTemplate/VirtualAssistantTemplate/Services/BotServices.cs @@ -45,14 +45,8 @@ public BotServices(BotSettings settings) CognitiveModelSets.Add(language, set); } - - SkillDefinitions = settings.Skills; } - public Dictionary AuthenticationConnections { get; set; } = new Dictionary(); - public Dictionary CognitiveModelSets { get; set; } = new Dictionary(); - - public List SkillDefinitions { get; set; } = new List(); } } diff --git a/templates/Virtual-Assistant-Template/VirtualAssistantTemplate/VirtualAssistantTemplate/Services/BotSettings.cs b/templates/Virtual-Assistant-Template/VirtualAssistantTemplate/VirtualAssistantTemplate/Services/BotSettings.cs index b194b54ac3..5abc304636 100644 --- a/templates/Virtual-Assistant-Template/VirtualAssistantTemplate/VirtualAssistantTemplate/Services/BotSettings.cs +++ b/templates/Virtual-Assistant-Template/VirtualAssistantTemplate/VirtualAssistantTemplate/Services/BotSettings.cs @@ -3,6 +3,7 @@ using Microsoft.Bot.Builder.Skills; using Microsoft.Bot.Configuration; using System.Collections.Generic; +using VirtualAssistantTemplate.Models; namespace VirtualAssistantTemplate.Services { @@ -12,32 +13,34 @@ public class BotSettings public string MicrosoftAppPassword { get; set; } + public List OAuthConnections { get; set; } + public string DefaultLocale { get; set; } public CosmosDbStorageOptions CosmosDb { get; set; } public TelemetryConfiguration AppInsights { get; set; } - public BlobStorageSettings BlobStorage { get; set; } + public BlobStorageConfiguration BlobStorage { get; set; } - public ContentModeratorSettings ContentModerator { get; set; } + public ContentModeratorConfiguration ContentModerator { get; set; } - public Dictionary CognitiveModels { get; set; } + public Dictionary CognitiveModels { get; set; } public List Skills { get; set; } - public class BlobStorageSettings + public class BlobStorageConfiguration { public string ConnectionString { get; set; } public string Container { get; set; } } - public class ContentModeratorSettings + public class ContentModeratorConfiguration { public string Key { get; set; } } - public class CognitiveModelSettings + public class CognitiveModelConfiguration { public DispatchService DispatchModel { get; set; } diff --git a/templates/Virtual-Assistant-Template/VirtualAssistantTemplate/VirtualAssistantTemplate/Startup.cs b/templates/Virtual-Assistant-Template/VirtualAssistantTemplate/VirtualAssistantTemplate/Startup.cs index cf1165a052..cd45960023 100644 --- a/templates/Virtual-Assistant-Template/VirtualAssistantTemplate/VirtualAssistantTemplate/Startup.cs +++ b/templates/Virtual-Assistant-Template/VirtualAssistantTemplate/VirtualAssistantTemplate/Startup.cs @@ -13,9 +13,6 @@ using Microsoft.Extensions.Logging; using Microsoft.Bot.Builder.ApplicationInsights; using Microsoft.ApplicationInsights; -using Microsoft.ApplicationInsights.Extensibility; -using Microsoft.Bot.Schema; -using Microsoft.Bot.Builder.Skills.Auth; using Microsoft.Bot.Builder.BotFramework; using VirtualAssistantTemplate.Bots; using Microsoft.AspNetCore.Mvc; @@ -46,22 +43,44 @@ public Startup(IHostingEnvironment env, ILoggerFactory loggerFactory) // This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { + services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1); + + var provider = services.BuildServiceProvider(); + + // Load settings var settings = new BotSettings(); Configuration.Bind(settings); - - services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1); services.AddSingleton(settings); + + // Configure bot services services.AddSingleton(); - services.AddSingleton(new BotTelemetryClient(new TelemetryClient(settings.AppInsights))); + + // Configure credentials + services.AddSingleton(); + services.AddSingleton(new MicrosoftAppCredentials(settings.MicrosoftAppId, settings.MicrosoftAppPassword)); + + // Configure telemetry + var telemetryClient = new BotTelemetryClient(new TelemetryClient(settings.AppInsights)); + services.AddSingleton(telemetryClient); + services.AddBotApplicationInsights(telemetryClient); + + // Configure storage services.AddSingleton(new CosmosDbStorage(settings.CosmosDb)); services.AddSingleton(); services.AddSingleton(); - services.AddSingleton(); - services.AddSingleton(); - services.AddSingleton(new MicrosoftAppCredentials(settings.MicrosoftAppId, settings.MicrosoftAppPassword)); - services.AddSingleton(); + services.AddSingleton(sp => + { + var userState = sp.GetService(); + var conversationState = sp.GetService(); + return new BotStateSet(userState, conversationState); + }); + + // Configure adapters + services.AddSingleton(); + + // Configure bot services.AddTransient(); - services.AddTransient>(); + services.AddTransient>(); } // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. diff --git a/templates/Virtual-Assistant-Template/VirtualAssistantTemplate/VirtualAssistantTemplate/VirtualAssistantTemplate.csproj b/templates/Virtual-Assistant-Template/VirtualAssistantTemplate/VirtualAssistantTemplate/VirtualAssistantTemplate.csproj index 8a4841d5cf..eb1a62fa3f 100644 --- a/templates/Virtual-Assistant-Template/VirtualAssistantTemplate/VirtualAssistantTemplate/VirtualAssistantTemplate.csproj +++ b/templates/Virtual-Assistant-Template/VirtualAssistantTemplate/VirtualAssistantTemplate/VirtualAssistantTemplate.csproj @@ -20,7 +20,7 @@ - +