From 64ed40c5c09cc1b286e45024fdfd123ec683962c Mon Sep 17 00:00:00 2001 From: Hualiang Xie Date: Thu, 26 Sep 2019 19:12:25 +0800 Subject: [PATCH 1/3] remove sample, bug fix --- .../weatherskill/Dialogs/ForecastDialog.cs | 7 +- .../weatherskill/Dialogs/MainDialog.cs | 2 - .../weatherskill/Dialogs/SampleDialog.cs | 72 ------------------ .../Responses/Sample/SampleResponses.cs | 18 ----- .../Responses/Sample/SampleResponses.de.json | Bin 962 -> 0 bytes .../Responses/Sample/SampleResponses.es.json | Bin 968 -> 0 bytes .../Responses/Sample/SampleResponses.fr.json | Bin 960 -> 0 bytes .../Responses/Sample/SampleResponses.it.json | Bin 956 -> 0 bytes .../Responses/Sample/SampleResponses.json | 24 ------ .../Responses/Sample/SampleResponses.tt | 3 - .../Responses/Sample/SampleResponses.zh.json | 24 ------ .../experimental/weatherskill/Startup.cs | 5 +- .../weatherskill/WeatherSkill.csproj | 21 ----- 13 files changed, 4 insertions(+), 172 deletions(-) delete mode 100644 skills/csharp/experimental/weatherskill/Dialogs/SampleDialog.cs delete mode 100644 skills/csharp/experimental/weatherskill/Responses/Sample/SampleResponses.cs delete mode 100644 skills/csharp/experimental/weatherskill/Responses/Sample/SampleResponses.de.json delete mode 100644 skills/csharp/experimental/weatherskill/Responses/Sample/SampleResponses.es.json delete mode 100644 skills/csharp/experimental/weatherskill/Responses/Sample/SampleResponses.fr.json delete mode 100644 skills/csharp/experimental/weatherskill/Responses/Sample/SampleResponses.it.json delete mode 100644 skills/csharp/experimental/weatherskill/Responses/Sample/SampleResponses.json delete mode 100644 skills/csharp/experimental/weatherskill/Responses/Sample/SampleResponses.tt delete mode 100644 skills/csharp/experimental/weatherskill/Responses/Sample/SampleResponses.zh.json diff --git a/skills/csharp/experimental/weatherskill/Dialogs/ForecastDialog.cs b/skills/csharp/experimental/weatherskill/Dialogs/ForecastDialog.cs index 38a13f0203..29c8cf8f20 100644 --- a/skills/csharp/experimental/weatherskill/Dialogs/ForecastDialog.cs +++ b/skills/csharp/experimental/weatherskill/Dialogs/ForecastDialog.cs @@ -12,7 +12,6 @@ using Microsoft.Bot.Builder.Solutions.Responses; using Microsoft.Bot.Connector; using WeatherSkill.Models; -using WeatherSkill.Responses.Sample; using WeatherSkill.Responses.Shared; using WeatherSkill.Services; @@ -193,14 +192,14 @@ private string GetWeatherIcon(int iconValue, bool useFile) // partly sunny case 3: // return sun icon - return useFile ? GetImageUri("sunicon.png") : "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0OCA0OCI+PHRpdGxlPndlYXRoZXJpY29uczwvdGl0bGU+PHBhdGggZD0iTTE4LjU3LDIxLjVIMTUuMlYyMC4zOGgzLjM3Wm0xLjA4LTMuNzQtMi4zOC0yLjM5Ljc5LS44TDIwLjQ1LDE3Wm0wLDYuMzYuOC44TDE4LjA2LDI3LjNsLS43OS0uNzlabTQtNy4xMmEzLjc4LDMuNzgsMCwwLDEsMS41NC4zMSwzLjkxLDMuOTEsMCwwLDEsMi4wOSwyLjA5LDQsNCwwLDAsMSwwLDMuMDcsMy43MiwzLjcyLDAsMCwxLS44NCwxLjI1LDQuMTMsNC4xMywwLDAsMS0xLjI1Ljg1LDQsNCwwLDAsMS0zLjA3LDAsNCw0LDAsMCwxLTEuMjUtLjg1LDMuODMsMy44MywwLDAsMS0xLjE1LTIuNzhBNCw0LDAsMCwxLDIwLDE5LjRhNC4xMyw0LjEzLDAsMCwxLC44NS0xLjI1LDMuODIsMy44MiwwLDAsMSwxLjI1LS44NEEzLjc3LDMuNzcsMCwwLDEsMjMuNjMsMTdabTAsNi43NWEyLjY2LDIuNjYsMCwwLDAsMS4wOS0uMjIsMy4wOCwzLjA4LDAsMCwwLC45LS42LDMsMywwLDAsMCwuNi0uOSwyLjcsMi43LDAsMCwwLC4yMy0xLjA5LDIuNjYsMi42NiwwLDAsMC0uMjMtMS4wOSwyLjg1LDIuODUsMCwwLDAtMS41LTEuNSwyLjY2LDIuNjYsMCwwLDAtMS4wOS0uMjMsMi43LDIuNywwLDAsMC0xLjA5LjIzLDIuODUsMi44NSwwLDAsMC0xLjUsMS41LDIuNjYsMi42NiwwLDAsMC0uMjIsMS4wOUEyLjY5LDIuNjksMCwwLDAsMjEsMjJhMywzLDAsMCwwLC42LjksMy4wOCwzLjA4LDAsMCwwLC45LjZBMi42OSwyLjY5LDAsMCwwLDIzLjYzLDIzLjc1Wm0uNTctNy44N0gyMy4wN1YxMi41SDI0LjJaTTIzLjA3LDI2SDI0LjJ2My4zOEgyMy4wN1ptNC41NS04LjI0LS44LS44LDIuMzktMi4zOS43OS44Wm0wLDYuMzZMMzAsMjYuNTFsLS43OS43OS0yLjM5LTIuMzhabTQuNDUtMy43NFYyMS41SDI4LjdWMjAuMzhaIi8+PC9zdmc+"; + return useFile ? GetImageUri("sun.png") : "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0OCA0OCI+PHRpdGxlPndlYXRoZXJpY29uczwvdGl0bGU+PHBhdGggZD0iTTE4LjU3LDIxLjVIMTUuMlYyMC4zOGgzLjM3Wm0xLjA4LTMuNzQtMi4zOC0yLjM5Ljc5LS44TDIwLjQ1LDE3Wm0wLDYuMzYuOC44TDE4LjA2LDI3LjNsLS43OS0uNzlabTQtNy4xMmEzLjc4LDMuNzgsMCwwLDEsMS41NC4zMSwzLjkxLDMuOTEsMCwwLDEsMi4wOSwyLjA5LDQsNCwwLDAsMSwwLDMuMDcsMy43MiwzLjcyLDAsMCwxLS44NCwxLjI1LDQuMTMsNC4xMywwLDAsMS0xLjI1Ljg1LDQsNCwwLDAsMS0zLjA3LDAsNCw0LDAsMCwxLTEuMjUtLjg1LDMuODMsMy44MywwLDAsMS0xLjE1LTIuNzhBNCw0LDAsMCwxLDIwLDE5LjRhNC4xMyw0LjEzLDAsMCwxLC44NS0xLjI1LDMuODIsMy44MiwwLDAsMSwxLjI1LS44NEEzLjc3LDMuNzcsMCwwLDEsMjMuNjMsMTdabTAsNi43NWEyLjY2LDIuNjYsMCwwLDAsMS4wOS0uMjIsMy4wOCwzLjA4LDAsMCwwLC45LS42LDMsMywwLDAsMCwuNi0uOSwyLjcsMi43LDAsMCwwLC4yMy0xLjA5LDIuNjYsMi42NiwwLDAsMC0uMjMtMS4wOSwyLjg1LDIuODUsMCwwLDAtMS41LTEuNSwyLjY2LDIuNjYsMCwwLDAtMS4wOS0uMjMsMi43LDIuNywwLDAsMC0xLjA5LjIzLDIuODUsMi44NSwwLDAsMC0xLjUsMS41LDIuNjYsMi42NiwwLDAsMC0uMjIsMS4wOUEyLjY5LDIuNjksMCwwLDAsMjEsMjJhMywzLDAsMCwwLC42LjksMy4wOCwzLjA4LDAsMCwwLC45LjZBMi42OSwyLjY5LDAsMCwwLDIzLjYzLDIzLjc1Wm0uNTctNy44N0gyMy4wN1YxMi41SDI0LjJaTTIzLjA3LDI2SDI0LjJ2My4zOEgyMy4wN1ptNC41NS04LjI0LS44LS44LDIuMzktMi4zOS43OS44Wm0wLDYuMzZMMzAsMjYuNTFsLS43OS43OS0yLjM5LTIuMzhabTQuNDUtMy43NFYyMS41SDI4LjdWMjAuMzhaIi8+PC9zdmc+"; // intermittent clouds case 4: // hazy sunshine case 5: // cloud icon - return useFile ? GetImageUri("cloudicon.png") : "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0OCA0OCI+PHRpdGxlPndlYXRoZXJpY29uczwvdGl0bGU+PHBhdGggZD0iTTI5Ljc5LDIyLjM4YTMuMzIsMy4zMiwwLDAsMSwxLjMzLjI2LDMuMzMsMy4zMywwLDAsMSwxLjgxLDEuNzgsMy4yOSwzLjI5LDAsMCwxLC4yNywxLjMzLDMuMTcsMy4xNywwLDAsMS0uMjcsMS4zMSwzLjMsMy4zLDAsMCwxLS43MiwxLjA4LDMuNDYsMy40NiwwLDAsMS0xLjA4LjcyLDMuMjMsMy4yMywwLDAsMS0xLjMxLjI2SDE5LjdhNC4zNiw0LjM2LDAsMCwxLTEuNzYtLjM1LDQuNSw0LjUsMCwwLDEtMS40My0xLDQuMzksNC4zOSwwLDAsMS0xLTEuNDMsNC41OCw0LjU4LDAsMCwxLDAtMy41MSw0LjM5LDQuMzksMCwwLDEsMS0xLjQzLDQuNSw0LjUsMCwwLDEsMS40My0xLDQuMzYsNC4zNiwwLDAsMSwxLjc2LS4zNiw0LjQ1LDQuNDUsMCwwLDEsLjgxLjA4LDUuNTQsNS41NCwwLDAsMSwuODItMSw0Ljc1LDQuNzUsMCwwLDEsMS0uNzNBNS4yOSw1LjI5LDAsMCwxLDIzLjQ5LDE4YTUuMzgsNS4zOCwwLDAsMSwxLjI3LS4xNSw1LDUsMCwwLDEsMy4zNywxLjI4LDUsNSwwLDAsMSwxLjExLDEuNDNBNS4xOSw1LjE5LDAsMCwxLDI5Ljc5LDIyLjM4Wm0wLDUuNjJhMi4yLDIuMiwwLDAsMCwuODgtLjE4LDIsMiwwLDAsMCwuNzEtLjQ4LDIuMTQsMi4xNCwwLDAsMCwuNDktLjcyLDIuMzEsMi4zMSwwLDAsMCwwLTEuNzQsMi4xNCwyLjE0LDAsMCwwLS40OS0uNzIsMiwyLDAsMCwwLS43MS0uNDgsMi4yLDIuMiwwLDAsMC0uODgtLjE4SDI4Ljd2LS41NmE0LDQsMCwwLDAtLjMxLTEuNTQsNC4xMyw0LjEzLDAsMCwwLS44NS0xLjI1LDMuNzIsMy43MiwwLDAsMC0xLjI1LS44NEEzLjc3LDMuNzcsMCwwLDAsMjQuNzYsMTlhMy45NCwzLjk0LDAsMCwwLTEuMTkuMTgsNC4yOSw0LjI5LDAsMCwwLTEuMDUuNTIsNC4wNyw0LjA3LDAsMCwwLS44NS44MSw0LjEzLDQuMTMsMCwwLDAtLjU5LDEsMy4xMywzLjEzLDAsMCwwLTEuMzgtLjMxLDMuNDEsMy40MSwwLDAsMC0xLjMyLjI2LDMuNTcsMy41NywwLDAsMC0xLjA3LjczLDMuNDksMy40OSwwLDAsMC0uNzMsMS4wOCwzLjM1LDMuMzUsMCwwLDAtLjI2LDEuMywzLjI5LDMuMjksMCwwLDAsMSwyLjM5LDMuNTcsMy41NywwLDAsMCwxLjA3LjczQTMuNDEsMy40MSwwLDAsMCwxOS43LDI4WiIvPjwvc3ZnPg=="; + return useFile ? GetImageUri("cloud.png") : "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0OCA0OCI+PHRpdGxlPndlYXRoZXJpY29uczwvdGl0bGU+PHBhdGggZD0iTTI5Ljc5LDIyLjM4YTMuMzIsMy4zMiwwLDAsMSwxLjMzLjI2LDMuMzMsMy4zMywwLDAsMSwxLjgxLDEuNzgsMy4yOSwzLjI5LDAsMCwxLC4yNywxLjMzLDMuMTcsMy4xNywwLDAsMS0uMjcsMS4zMSwzLjMsMy4zLDAsMCwxLS43MiwxLjA4LDMuNDYsMy40NiwwLDAsMS0xLjA4LjcyLDMuMjMsMy4yMywwLDAsMS0xLjMxLjI2SDE5LjdhNC4zNiw0LjM2LDAsMCwxLTEuNzYtLjM1LDQuNSw0LjUsMCwwLDEtMS40My0xLDQuMzksNC4zOSwwLDAsMS0xLTEuNDMsNC41OCw0LjU4LDAsMCwxLDAtMy41MSw0LjM5LDQuMzksMCwwLDEsMS0xLjQzLDQuNSw0LjUsMCwwLDEsMS40My0xLDQuMzYsNC4zNiwwLDAsMSwxLjc2LS4zNiw0LjQ1LDQuNDUsMCwwLDEsLjgxLjA4LDUuNTQsNS41NCwwLDAsMSwuODItMSw0Ljc1LDQuNzUsMCwwLDEsMS0uNzNBNS4yOSw1LjI5LDAsMCwxLDIzLjQ5LDE4YTUuMzgsNS4zOCwwLDAsMSwxLjI3LS4xNSw1LDUsMCwwLDEsMy4zNywxLjI4LDUsNSwwLDAsMSwxLjExLDEuNDNBNS4xOSw1LjE5LDAsMCwxLDI5Ljc5LDIyLjM4Wm0wLDUuNjJhMi4yLDIuMiwwLDAsMCwuODgtLjE4LDIsMiwwLDAsMCwuNzEtLjQ4LDIuMTQsMi4xNCwwLDAsMCwuNDktLjcyLDIuMzEsMi4zMSwwLDAsMCwwLTEuNzQsMi4xNCwyLjE0LDAsMCwwLS40OS0uNzIsMiwyLDAsMCwwLS43MS0uNDgsMi4yLDIuMiwwLDAsMC0uODgtLjE4SDI4Ljd2LS41NmE0LDQsMCwwLDAtLjMxLTEuNTQsNC4xMyw0LjEzLDAsMCwwLS44NS0xLjI1LDMuNzIsMy43MiwwLDAsMC0xLjI1LS44NEEzLjc3LDMuNzcsMCwwLDAsMjQuNzYsMTlhMy45NCwzLjk0LDAsMCwwLTEuMTkuMTgsNC4yOSw0LjI5LDAsMCwwLTEuMDUuNTIsNC4wNyw0LjA3LDAsMCwwLS44NS44MSw0LjEzLDQuMTMsMCwwLDAtLjU5LDEsMy4xMywzLjEzLDAsMCwwLTEuMzgtLjMxLDMuNDEsMy40MSwwLDAsMC0xLjMyLjI2LDMuNTcsMy41NywwLDAsMC0xLjA3LjczLDMuNDksMy40OSwwLDAsMC0uNzMsMS4wOCwzLjM1LDMuMzUsMCwwLDAtLjI2LDEuMywzLjI5LDMuMjksMCwwLDAsMSwyLjM5LDMuNTcsMy41NywwLDAsMCwxLjA3LjczQTMuNDEsMy40MSwwLDAsMCwxOS43LDI4WiIvPjwvc3ZnPg=="; // mostly cloudy case 6: @@ -273,7 +272,7 @@ private string GetWeatherIcon(int iconValue, bool useFile) // windy case 32: // wind icon - return useFile ? GetImageUri("win.png") : "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0OCA0OCI+PHRpdGxlPndlYXRoZXJpY29uczwvdGl0bGU+PHBhdGggZD0iTTI4LjcsMTguMTJhMy40LDMuNCwwLDAsMS0xLDIuMzksMy40OSwzLjQ5LDAsMCwxLTEuMDguNzMsMy40LDMuNCwwLDAsMS0xLjMxLjI2SDE1LjJWMjAuMzhIMjUuMzJhMi4yLDIuMiwwLDAsMCwuODgtLjE4QTIuMjksMi4yOSwwLDAsMCwyNy40LDE5YTIuMzQsMi4zNCwwLDAsMCwwLTEuNzUsMi4yOSwyLjI5LDAsMCwwLTEuMi0xLjIsMi4xOSwyLjE5LDAsMCwwLS44OC0uMTcsMi4xMSwyLjExLDAsMCwwLS44Ny4xNywyLjM5LDIuMzksMCwwLDAtLjcyLjQ4LDIuMzMsMi4zMywwLDAsMC0uNDguNzIsMi4xMiwyLjEyLDAsMCwwLS4xOC44N0gyMmEzLjE4LDMuMTgsMCwwLDEsLjI2LTEuMywzLjQ5LDMuNDksMCwwLDEsLjczLTEuMDgsMy4yOSwzLjI5LDAsMCwxLDIuMzgtMSwzLjQsMy40LDAsMCwxLDEuMzEuMjYsMy40OSwzLjQ5LDAsMCwxLDEuMDguNzMsMy4zLDMuMywwLDAsMSwuNzIsMS4wOEEzLjE5LDMuMTksMCwwLDEsMjguNywxOC4xMlpNMzEsMjAuMzhhMi4xMSwyLjExLDAsMCwxLC44Ny4xNywyLjIxLDIuMjEsMCwwLDEsMS4yLDEuMiwyLjIyLDIuMjIsMCwwLDEsMCwxLjc1LDIuMjEsMi4yMSwwLDAsMS0xLjIsMS4yLDIuMTIsMi4xMiwwLDAsMS0uODcuMThIMjkuNTJhMi4xMywyLjEzLDAsMCwxLC4zLDEuMTIsMi4zOCwyLjM4LDAsMCwxLS4xNy44OCwyLjIsMi4yLDAsMCwxLS40OS43MSwyLDIsMCwwLDEtLjcxLjQ4LDIuMiwyLjIsMCwwLDEtLjg4LjE4LDIuMTIsMi4xMiwwLDAsMS0uODctLjE4LDIuMDcsMi4wNywwLDAsMS0uNzItLjQ4LDIuMTcsMi4xNywwLDAsMS0uNDgtLjcxLDIuMiwyLjIsMCwwLDEtLjE4LS44OGgxLjEzYTEuMjcsMS4yNywwLDAsMCwuMDguNDQsMS4wOSwxLjA5LDAsMCwwLDEsLjY4QTEsMSwwLDAsMCwyOCwyN2ExLjExLDEuMTEsMCwwLDAsLjM2LS4yNSwxLjIxLDEuMjEsMCwwLDAsLjI0LS4zNSwxLjEyLDEuMTIsMCwwLDAsMC0uODgsMS4yMSwxLjIxLDAsMCwwLS4yNC0uMzVBMS4xMSwxLjExLDAsMCwwLDI4LDI1YTEsMSwwLDAsMC0uNDQtLjA4SDE1LjJWMjMuNzVIMzFhMS4xMiwxLjEyLDAsMCwwLC40NC0uMDksMS4yMSwxLjIxLDAsMCwwLC4zNS0uMjQsMS4xMywxLjEzLDAsMCwwLC4yNC0uMzYsMSwxLDAsMCwwLC4wOS0uNDQsMSwxLDAsMCwwLS4wOS0uNDMsMS4xMywxLjEzLDAsMCwwLS4yNC0uMzYsMS4yMSwxLjIxLDAsMCwwLS4zNS0uMjRBMS4xMiwxLjEyLDAsMCwwLDMxLDIxLjVhMSwxLDAsMCwwLS40NC4wOSwxLjEsMS4xLDAsMCwwLS42LjYsMSwxLDAsMCwwLS4wOS40M0gyOC43YTIuMTEsMi4xMSwwLDAsMSwuMTctLjg3LDIuMjksMi4yOSwwLDAsMSwxLjItMS4yQTIuMTYsMi4xNiwwLDAsMSwzMSwyMC4zOFoiLz48L3N2Zz4="; + return useFile ? GetImageUri("wind.png") : "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0OCA0OCI+PHRpdGxlPndlYXRoZXJpY29uczwvdGl0bGU+PHBhdGggZD0iTTI4LjcsMTguMTJhMy40LDMuNCwwLDAsMS0xLDIuMzksMy40OSwzLjQ5LDAsMCwxLTEuMDguNzMsMy40LDMuNCwwLDAsMS0xLjMxLjI2SDE1LjJWMjAuMzhIMjUuMzJhMi4yLDIuMiwwLDAsMCwuODgtLjE4QTIuMjksMi4yOSwwLDAsMCwyNy40LDE5YTIuMzQsMi4zNCwwLDAsMCwwLTEuNzUsMi4yOSwyLjI5LDAsMCwwLTEuMi0xLjIsMi4xOSwyLjE5LDAsMCwwLS44OC0uMTcsMi4xMSwyLjExLDAsMCwwLS44Ny4xNywyLjM5LDIuMzksMCwwLDAtLjcyLjQ4LDIuMzMsMi4zMywwLDAsMC0uNDguNzIsMi4xMiwyLjEyLDAsMCwwLS4xOC44N0gyMmEzLjE4LDMuMTgsMCwwLDEsLjI2LTEuMywzLjQ5LDMuNDksMCwwLDEsLjczLTEuMDgsMy4yOSwzLjI5LDAsMCwxLDIuMzgtMSwzLjQsMy40LDAsMCwxLDEuMzEuMjYsMy40OSwzLjQ5LDAsMCwxLDEuMDguNzMsMy4zLDMuMywwLDAsMSwuNzIsMS4wOEEzLjE5LDMuMTksMCwwLDEsMjguNywxOC4xMlpNMzEsMjAuMzhhMi4xMSwyLjExLDAsMCwxLC44Ny4xNywyLjIxLDIuMjEsMCwwLDEsMS4yLDEuMiwyLjIyLDIuMjIsMCwwLDEsMCwxLjc1LDIuMjEsMi4yMSwwLDAsMS0xLjIsMS4yLDIuMTIsMi4xMiwwLDAsMS0uODcuMThIMjkuNTJhMi4xMywyLjEzLDAsMCwxLC4zLDEuMTIsMi4zOCwyLjM4LDAsMCwxLS4xNy44OCwyLjIsMi4yLDAsMCwxLS40OS43MSwyLDIsMCwwLDEtLjcxLjQ4LDIuMiwyLjIsMCwwLDEtLjg4LjE4LDIuMTIsMi4xMiwwLDAsMS0uODctLjE4LDIuMDcsMi4wNywwLDAsMS0uNzItLjQ4LDIuMTcsMi4xNywwLDAsMS0uNDgtLjcxLDIuMiwyLjIsMCwwLDEtLjE4LS44OGgxLjEzYTEuMjcsMS4yNywwLDAsMCwuMDguNDQsMS4wOSwxLjA5LDAsMCwwLDEsLjY4QTEsMSwwLDAsMCwyOCwyN2ExLjExLDEuMTEsMCwwLDAsLjM2LS4yNSwxLjIxLDEuMjEsMCwwLDAsLjI0LS4zNSwxLjEyLDEuMTIsMCwwLDAsMC0uODgsMS4yMSwxLjIxLDAsMCwwLS4yNC0uMzVBMS4xMSwxLjExLDAsMCwwLDI4LDI1YTEsMSwwLDAsMC0uNDQtLjA4SDE1LjJWMjMuNzVIMzFhMS4xMiwxLjEyLDAsMCwwLC40NC0uMDksMS4yMSwxLjIxLDAsMCwwLC4zNS0uMjQsMS4xMywxLjEzLDAsMCwwLC4yNC0uMzYsMSwxLDAsMCwwLC4wOS0uNDQsMSwxLDAsMCwwLS4wOS0uNDMsMS4xMywxLjEzLDAsMCwwLS4yNC0uMzYsMS4yMSwxLjIxLDAsMCwwLS4zNS0uMjRBMS4xMiwxLjEyLDAsMCwwLDMxLDIxLjVhMSwxLDAsMCwwLS40NC4wOSwxLjEsMS4xLDAsMCwwLS42LjYsMSwxLDAsMCwwLS4wOS40M0gyOC43YTIuMTEsMi4xMSwwLDAsMSwuMTctLjg3LDIuMjksMi4yOSwwLDAsMSwxLjItMS4yQTIuMTYsMi4xNiwwLDAsMSwzMSwyMC4zOFoiLz48L3N2Zz4="; // clear case 33: diff --git a/skills/csharp/experimental/weatherskill/Dialogs/MainDialog.cs b/skills/csharp/experimental/weatherskill/Dialogs/MainDialog.cs index 744acf909e..9b24308d1a 100644 --- a/skills/csharp/experimental/weatherskill/Dialogs/MainDialog.cs +++ b/skills/csharp/experimental/weatherskill/Dialogs/MainDialog.cs @@ -38,7 +38,6 @@ public MainDialog( ResponseManager responseManager, UserState userState, ConversationState conversationState, - SampleDialog sampleDialog, IBotTelemetryClient telemetryClient, IHttpContextAccessor httpContext) : base(nameof(MainDialog), telemetryClient) @@ -53,7 +52,6 @@ public MainDialog( _contextAccessor = userState.CreateProperty(nameof(SkillContext)); // Register dialogs - AddDialog(sampleDialog); AddDialog(new ForecastDialog(_settings, _services, _responseManager, conversationState, TelemetryClient, httpContext)); } diff --git a/skills/csharp/experimental/weatherskill/Dialogs/SampleDialog.cs b/skills/csharp/experimental/weatherskill/Dialogs/SampleDialog.cs deleted file mode 100644 index 8e214f2944..0000000000 --- a/skills/csharp/experimental/weatherskill/Dialogs/SampleDialog.cs +++ /dev/null @@ -1,72 +0,0 @@ -using System.Collections.Specialized; -using System.Threading; -using System.Threading.Tasks; -using Microsoft.Bot.Builder; -using Microsoft.Bot.Builder.Dialogs; -using Microsoft.Bot.Builder.Solutions.Responses; -using WeatherSkill.Models; -using WeatherSkill.Responses.Sample; -using WeatherSkill.Services; - -namespace WeatherSkill.Dialogs -{ - public class SampleDialog : SkillDialogBase - { - public SampleDialog( - BotSettings settings, - BotServices services, - ResponseManager responseManager, - ConversationState conversationState, - IBotTelemetryClient telemetryClient) - : base(nameof(SampleDialog), settings, services, responseManager, conversationState, telemetryClient) - { - var sample = new WaterfallStep[] - { - // NOTE: Uncomment these lines to include authentication steps to this dialog - // GetAuthToken, - // AfterGetAuthToken, - PromptForName, - GreetUser, - End, - }; - - AddDialog(new WaterfallDialog(nameof(SampleDialog), sample)); - AddDialog(new TextPrompt(DialogIds.NamePrompt)); - - InitialDialogId = nameof(SampleDialog); - } - - private async Task PromptForName(WaterfallStepContext stepContext, CancellationToken cancellationToken) - { - // NOTE: Uncomment the following lines to access LUIS result for this turn. - // var state = await ConversationStateAccessor.GetAsync(stepContext.Context); - // var intent = state.LuisResult.TopIntent().intent; - // var entities = state.LuisResult.Entities; - var prompt = ResponseManager.GetResponse(SampleResponses.NamePrompt); - return await stepContext.PromptAsync(DialogIds.NamePrompt, new PromptOptions { Prompt = prompt }); - } - - private async Task GreetUser(WaterfallStepContext stepContext, CancellationToken cancellationToken) - { - var tokens = new StringDictionary - { - { "Name", stepContext.Result.ToString() }, - }; - - var response = ResponseManager.GetResponse(SampleResponses.HaveNameMessage, tokens); - await stepContext.Context.SendActivityAsync(response); - - return await stepContext.NextAsync(); - } - - private Task End(WaterfallStepContext stepContext, CancellationToken cancellationToken) - { - return stepContext.EndDialogAsync(); - } - - private class DialogIds - { - public const string NamePrompt = "namePrompt"; - } - } -} diff --git a/skills/csharp/experimental/weatherskill/Responses/Sample/SampleResponses.cs b/skills/csharp/experimental/weatherskill/Responses/Sample/SampleResponses.cs deleted file mode 100644 index c42212b2fe..0000000000 --- a/skills/csharp/experimental/weatherskill/Responses/Sample/SampleResponses.cs +++ /dev/null @@ -1,18 +0,0 @@ -// https://docs.microsoft.com/en-us/visualstudio/modeling/t4-include-directive?view=vs-2017 -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - -using Microsoft.Bot.Builder.Solutions.Responses; - -namespace WeatherSkill.Responses.Sample -{ - /// - /// Contains bot responses. - /// - public class SampleResponses : IResponseIdCollection - { - // Generated accessors - public const string NamePrompt = "NamePrompt"; - public const string HaveNameMessage = "HaveNameMessage"; - } -} \ No newline at end of file diff --git a/skills/csharp/experimental/weatherskill/Responses/Sample/SampleResponses.de.json b/skills/csharp/experimental/weatherskill/Responses/Sample/SampleResponses.de.json deleted file mode 100644 index 57d51b2b5afd8f25ed631d94863713bce923aec4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 962 zcmc&zyAFat5S-e?f55B#0vlUxj0uH>u^@;-L?HNx(eSPQg{3-+9D*b$p)i}ku{Sq6 zJGVUU7j)5q!BCjM!WIsuh!JuXVbAP8v8FgHz6} zFiUw1xXgRF@)_{7nP!J%?^l?GOR;i9tc6Xc;5(DntD7w0Pw)gPCw_AP diff --git a/skills/csharp/experimental/weatherskill/Responses/Sample/SampleResponses.es.json b/skills/csharp/experimental/weatherskill/Responses/Sample/SampleResponses.es.json deleted file mode 100644 index 7c21c6ee3afd541c57c02a8bd0a0f585e1fa71ac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 968 zcmb`GK}rKb5Jmr5@D5|Ga{@P6h@cC_y|`$SA&4nGmYTan5$gR;6(Nl6isBh#FRHM1>`K~(5ZO`NwKf|gV zHCSuC_S~km&h$aQNR8(znCEGh0Q(sJQNitOMz#ST^w7=l7p|-~&(jXL?|$_%G%o1! z%w!koo;|Uo!uwCiIclcM9&0^oyTxd51ies`y}shU;smPePQ}nS<2C-%?RRE~$=^|W zqdZBglf9hY%~QHuzTr@3evfiL&T(~uLkoNknx;LO;z>m`5{-OoT=LyHOw*yAO4Zwu SeReCL$yND3xNEnZztslg(15-G diff --git a/skills/csharp/experimental/weatherskill/Responses/Sample/SampleResponses.fr.json b/skills/csharp/experimental/weatherskill/Responses/Sample/SampleResponses.fr.json deleted file mode 100644 index 9ed3547f87cfea661564ef5fa2b2cb0a92012d2d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 960 zcmb_a%WlFj5S%j-{}A>}f1sC2MM&k)iaX+9MHa7;M&Th;ln?GtKxa*C2$ou2+C!Z6 z?#y^+_q#2cXdqz-K4371MIQyec*?P4_L+CbszYVLsvMt~@VlsL1_4QHH0oVGD@3)} z1Z+Xau_<%LY=SlaSHw-ICudkPS$yLu+`N#p9q}oHuunS-W|gj6@%>!9?y|-=JmVM6 zA|vyPFL-ljKRcnCjnkC!POC=fg<1)yc=FEkf??QgtC!X1D|GFVuDsHP z3{&StL2c@%-;ffms~q?rE1q`jZ~eXAmw2DL)SY6?S?NCg+^PK%v{?OV=9*nGRGvB? K|K1hFFYybz=zpXD diff --git a/skills/csharp/experimental/weatherskill/Responses/Sample/SampleResponses.it.json b/skills/csharp/experimental/weatherskill/Responses/Sample/SampleResponses.it.json deleted file mode 100644 index 9624de03f7f7614fd651952578b1da25295474f8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 956 zcmb_b!4APd5PfHff2cY80v87t4#Zs?Hq{_#8$~42U&ou(EwyQ+sqA65yEAX*y?K4y zZ|I_ffJ-og!2uEGI3nRG#fi5AzP+Pfkw-?Q*kj8*D`FNUlE&z&X1QA-YJ_WvEg0Eq z5i?Fi3=m?&U3=MLNc6sktXRUzDUl3zMF+o;99P#%UO`@dRT9>ZS>w#U#`f&=5X(TT zhqmV!YfQ>mDN*weL?MR3g*i^=DbE>~VRlq-sA?vh#DA4mT@!Yt({X*|=rvTi9>rJK zpI()tn}zR-xphHE1yqFqD}Jjx5-Ocgx7Uk$rX8Plb$rI3H%&Zc$VfTqf2Yo?^OWM} Fcmmg&d -<#@ output extension=".cs" #> -<#@ include file="..\Shared\ResponseIdCollection.t4"#> \ No newline at end of file diff --git a/skills/csharp/experimental/weatherskill/Responses/Sample/SampleResponses.zh.json b/skills/csharp/experimental/weatherskill/Responses/Sample/SampleResponses.zh.json deleted file mode 100644 index dffd603f9e..0000000000 --- a/skills/csharp/experimental/weatherskill/Responses/Sample/SampleResponses.zh.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "NamePrompt": { - "replies": [ - { - "text": "你叫什么名字?", - "speak": "你叫什么名字?" - } - ], - "inputHint": "expectingInput" - }, - "HaveNameMessage": { - "replies": [ - { - "text": "嗨, {Name}!", - "speak": "嗨, {Name}!" - }, - { - "text": "很高兴见到你, {Name}!", - "speak": "很高兴见到你, {Name}!" - } - ], - "inputHint": "acceptingInput" - } -} \ No newline at end of file diff --git a/skills/csharp/experimental/weatherskill/Startup.cs b/skills/csharp/experimental/weatherskill/Startup.cs index bbb8643ee3..f2f14930b3 100644 --- a/skills/csharp/experimental/weatherskill/Startup.cs +++ b/skills/csharp/experimental/weatherskill/Startup.cs @@ -26,7 +26,6 @@ using WeatherSkill.Bots; using WeatherSkill.Dialogs; using WeatherSkill.Responses.Main; -using WeatherSkill.Responses.Sample; using WeatherSkill.Responses.Shared; using WeatherSkill.Services; @@ -95,11 +94,9 @@ public void ConfigureServices(IServiceCollection services) services.AddSingleton(sp => new ResponseManager( settings.CognitiveModels.Select(l => l.Key).ToArray(), new MainResponses(), - new SharedResponses(), - new SampleResponses())); + new SharedResponses())); // Register dialogs - services.AddTransient(); services.AddTransient(); // Configure adapters diff --git a/skills/csharp/experimental/weatherskill/WeatherSkill.csproj b/skills/csharp/experimental/weatherskill/WeatherSkill.csproj index b510e15d16..d8c7617a4b 100644 --- a/skills/csharp/experimental/weatherskill/WeatherSkill.csproj +++ b/skills/csharp/experimental/weatherskill/WeatherSkill.csproj @@ -15,12 +15,6 @@ - - - - - - @@ -38,12 +32,6 @@ - - - - - - @@ -92,10 +80,6 @@ TextTemplatingFileGenerator MainResponses.cs - - TextTemplatingFileGenerator - SampleResponses.cs - TextTemplatingFileGenerator SharedResponses.cs @@ -117,11 +101,6 @@ True MainResponses.tt - - True - True - SampleResponses.tt - True True From 5193109e48bb950f59c847972ee40333e254c174 Mon Sep 17 00:00:00 2001 From: Hualiang Xie Date: Fri, 27 Sep 2019 12:05:10 +0800 Subject: [PATCH 2/3] [Weather] use Latitude & Longitude if possible * add Service.GetLocationByGeoAsync --- .../weatherskill/Dialogs/ForecastDialog.cs | 16 +++++++- .../weatherskill/Dialogs/MainDialog.cs | 40 ++++++++++++++++++- .../weatherskill/Dialogs/SkillDialogBase.cs | 1 + .../weatherskill/Models/SkillState.cs | 6 +++ .../Services/AccuweatherService.cs | 21 ++++++++-- 5 files changed, 77 insertions(+), 7 deletions(-) diff --git a/skills/csharp/experimental/weatherskill/Dialogs/ForecastDialog.cs b/skills/csharp/experimental/weatherskill/Dialogs/ForecastDialog.cs index 29c8cf8f20..47638be594 100644 --- a/skills/csharp/experimental/weatherskill/Dialogs/ForecastDialog.cs +++ b/skills/csharp/experimental/weatherskill/Dialogs/ForecastDialog.cs @@ -66,7 +66,7 @@ private async Task RouteToGeographyPromptOrForecastResponse(Wa var state = await _stateAccessor.GetAsync(stepContext.Context); var geography = state.Geography; - if (string.IsNullOrEmpty(geography)) + if (string.IsNullOrEmpty(geography) && state.Latitude == double.NaN) { return await stepContext.NextAsync(); } @@ -117,7 +117,19 @@ private async Task GetWeatherResponse(WaterfallStepContext ste var state = await _stateAccessor.GetAsync(stepContext.Context); var service = new AccuweatherService(Settings); - state.GeographyLocation = await service.GetLocationByQueryAsync(state.Geography); + + if (!string.IsNullOrEmpty(state.Geography)) + { + state.GeographyLocation = await service.GetLocationByQueryAsync(state.Geography); + } + else if (state.Latitude != double.NaN) + { + state.GeographyLocation = await service.GetLocationByGeoAsync(state.Latitude, state.Longitude); + } + else + { + throw new Exception("Must have Geography or Latitude & Longitude!"); + } var oneDayForecast = await service.GetOneDayForecastAsync(state.GeographyLocation.Key); diff --git a/skills/csharp/experimental/weatherskill/Dialogs/MainDialog.cs b/skills/csharp/experimental/weatherskill/Dialogs/MainDialog.cs index 9b24308d1a..b2ed4a0a4d 100644 --- a/skills/csharp/experimental/weatherskill/Dialogs/MainDialog.cs +++ b/skills/csharp/experimental/weatherskill/Dialogs/MainDialog.cs @@ -4,6 +4,7 @@ using System; using System.Collections.Generic; using System.Globalization; +using System.Spatial; using System.Threading; using System.Threading.Tasks; using Luis; @@ -151,6 +152,28 @@ public MainDialog( await dc.Context.SendActivityAsync(response); } + break; + } + case Events.Location: + { + // Test trigger with + // /event:{ "Name": "Location", "Value": "34.05222222222222,-118.2427777777777" } + var value = dc.Context.Activity.Value.ToString(); + + if (!string.IsNullOrEmpty(value)) + { + var coords = value.Split(','); + if (coords.Length == 2) + { + if (double.TryParse(coords[0], out var lat) && double.TryParse(coords[1], out var lng)) + { + var state = await _stateAccessor.GetAsync(dc.Context, () => new SkillState()); + state.Latitude = lat; + state.Longitude = lng; + } + } + } + break; } } @@ -257,8 +280,20 @@ private async Task PopulateStateFromSkillContext(ITurnContext context) { var location = semanticAction.Entities["location"]; var locationObj = location.Properties["location"].ToString(); - var state = await _stateAccessor.GetAsync(context, () => new SkillState()); - state.Geography = locationObj; + + var coords = locationObj.Split(','); + if (coords.Length == 2 && double.TryParse(coords[0], out var lat) && double.TryParse(coords[1], out var lng)) + { + var state = await _stateAccessor.GetAsync(context, () => new SkillState()); + state.Latitude = lat; + state.Longitude = lng; + } + else + { + // In case name has ',' + var state = await _stateAccessor.GetAsync(context, () => new SkillState()); + state.Geography = locationObj; + } } } @@ -266,6 +301,7 @@ private class Events { public const string TokenResponseEvent = "tokens/response"; public const string SkillBeginEvent = "skillBegin"; + public const string Location = "Location"; } } } \ No newline at end of file diff --git a/skills/csharp/experimental/weatherskill/Dialogs/SkillDialogBase.cs b/skills/csharp/experimental/weatherskill/Dialogs/SkillDialogBase.cs index a9e4fecf8c..7f441c6e32 100644 --- a/skills/csharp/experimental/weatherskill/Dialogs/SkillDialogBase.cs +++ b/skills/csharp/experimental/weatherskill/Dialogs/SkillDialogBase.cs @@ -207,6 +207,7 @@ protected string GetDivergedCardName(ITurnContext turnContext, string card) return card; } } + private class DialogIds { public const string SkillModeAuth = "SkillAuth"; diff --git a/skills/csharp/experimental/weatherskill/Models/SkillState.cs b/skills/csharp/experimental/weatherskill/Models/SkillState.cs index 9a8e31e997..f3e727f332 100644 --- a/skills/csharp/experimental/weatherskill/Models/SkillState.cs +++ b/skills/csharp/experimental/weatherskill/Models/SkillState.cs @@ -13,11 +13,17 @@ public class SkillState public string Geography { get; set; } + public double Latitude { get; set; } = double.NaN; + + public double Longitude { get; set; } = double.NaN; + public Location GeographyLocation { get; set; } public void Clear() { Geography = string.Empty; + Latitude = double.NaN; + Longitude = double.NaN; GeographyLocation = null; } } diff --git a/skills/csharp/experimental/weatherskill/Services/AccuweatherService.cs b/skills/csharp/experimental/weatherskill/Services/AccuweatherService.cs index 8883a0cc9f..e785d4db61 100644 --- a/skills/csharp/experimental/weatherskill/Services/AccuweatherService.cs +++ b/skills/csharp/experimental/weatherskill/Services/AccuweatherService.cs @@ -13,6 +13,7 @@ public sealed class AccuweatherService { private static HttpClient _httpClient; private string _searchLocationUrl = $"http://dataservice.accuweather.com/locations/v1/search?q={{0}}&apikey={{1}}"; + private string _searchLocationByGeoUrl = $"http://dataservice.accuweather.com/locations/v1/cities/geoposition/search?q={{0}},{{1}}&apikey={{2}}"; private string _oneDayForecastUrl = $"http://dataservice.accuweather.com/forecasts/v1/daily/1day/{{0}}?apikey={{1}}&details=true"; private string _fiveDayForecastUrl = $"http://dataservice.accuweather.com/forecasts/v1/daily/5day/{{0}}?apikey={{1}}&details=true"; private string _tenDayForecastUrl = $"http://dataservice.accuweather.com/forecasts/v1/daily/10day/{{0}}?apikey={{1}}&details=true"; @@ -27,7 +28,12 @@ public AccuweatherService(BotSettings settings) public async Task GetLocationByQueryAsync(string query) { - return await GetLocationResponseAsync(string.Format(CultureInfo.InvariantCulture, _searchLocationUrl, query, _apiKey)); + return (await GetLocationsResponseAsync(string.Format(CultureInfo.InvariantCulture, _searchLocationUrl, query, _apiKey)))[0]; + } + + public async Task GetLocationByGeoAsync(double latitude, double longitude) + { + return await GetLocationResponseAsync(string.Format(CultureInfo.InvariantCulture, _searchLocationByGeoUrl, latitude, longitude, _apiKey)); } public async Task GetOneDayForecastAsync(string query) @@ -55,13 +61,22 @@ private void GetApiKey(BotSettings settings) _apiKey = settings.WeatherApiKey ?? throw new Exception("Could not get the required AccuWeather API key. Please make sure your settings are correctly configured."); } - private async Task GetLocationResponseAsync(string url) + private async Task GetLocationsResponseAsync(string url) { var response = await _httpClient.GetStringAsync(url); var apiResponse = JsonConvert.DeserializeObject(response); - return apiResponse[0]; + return apiResponse; + } + + private async Task GetLocationResponseAsync(string url) + { + var response = await _httpClient.GetStringAsync(url); + + var apiResponse = JsonConvert.DeserializeObject(response); + + return apiResponse; } private async Task GetDailyForecastResponseAsync(string url) From 883f602d8a4eb4a07cb75294aeabc208927e9a52 Mon Sep 17 00:00:00 2001 From: Hualiang Xie Date: Tue, 8 Oct 2019 10:54:29 +0800 Subject: [PATCH 3/3] update manifestTemplate --- .../weatherskill/manifestTemplate.json | 2 +- .../manifestTemplate.json | 28 ++----------------- 2 files changed, 4 insertions(+), 26 deletions(-) diff --git a/skills/csharp/experimental/weatherskill/manifestTemplate.json b/skills/csharp/experimental/weatherskill/manifestTemplate.json index b5fc87cc07..ad47d0ab76 100644 --- a/skills/csharp/experimental/weatherskill/manifestTemplate.json +++ b/skills/csharp/experimental/weatherskill/manifestTemplate.json @@ -22,7 +22,7 @@ { "locale": "en", "source": [ - "WeatherSkill#GetForecast" + "WeatherSkill#CheckWeatherValue" ] } ] diff --git a/skills/csharp/pointofinterestskill/manifestTemplate.json b/skills/csharp/pointofinterestskill/manifestTemplate.json index 5972cfe009..26e31dbcb1 100644 --- a/skills/csharp/pointofinterestskill/manifestTemplate.json +++ b/skills/csharp/pointofinterestskill/manifestTemplate.json @@ -20,29 +20,7 @@ { "locale": "en", "source": [ - "PointOfInterest#NAVIGATION_ROUTE_FROM_X_TO_Y" - ] - } - ] - } - } - }, - { - "id": "poiskill_cancelRoute", - "definition": { - "description": "Cancel an active route.", - "slots": [ - { - "name": "location", - "types": [ "string" ] - } - ], - "triggers": { - "utteranceSources": [ - { - "locale": "en", - "source": [ - "PointOfInterest#NAVIGATION_CANCEL_ROUTE" + "PointOfInterest#GetDirections" ] } ] @@ -64,7 +42,7 @@ { "locale": "en", "source": [ - "PointOfInterest#NAVIGATION_FIND_POINTOFINTEREST" + "PointOfInterest#FindPointOfInterest" ] } ] @@ -86,7 +64,7 @@ { "locale": "en", "source": [ - "PointOfInterest#NAVIGATION_FIND_PARKING" + "PointOfInterest#FindParking" ] } ]