Skip to content

Commit b220530

Browse files
garyprettydaltskinmartinossdependabot[bot]iamloghin
authored
Release 07/02/2020 (#286)
* Master (#269) * Further Google request validation fix (#256) * Master (#252) * Fix for Zoom adapter throwing on no channel ID (#245) * Adding RingCentral adapter (#215) * Adding RingCentral adapter * Updating documentation #wip * Adding packaging details * Addressing warnings Co-authored-by: Gary Pretty <[email protected]> * Adding sample RingCentral Adapter bot (#221) * Adding RingCentral adapter * Updating documentation #wip * Adding packaging details * Addressing warnings * Adding RingCentral Adapter sample and updating documentation * Fix up unit tests * Adding RingCentral reference to main doc * Fix up git ignore Co-authored-by: Gary Pretty <[email protected]> * Update README.md * Update README.md * Add GitHub link to profile (#223) * Updated sample package references. Added ring central sample. (#224) * Updated sample package references. Added ring central sample. * Update dotnet pack yaml config * Further update to dotnet pack yaml to fix no matching projects build pipeline error. * Bump Microsoft.AspNetCore.All in /samples/Form Flow Sample (#225) Bumps [Microsoft.AspNetCore.All](https://github.com/aspnet/Universe) from 2.1.1 to 2.1.4. - [Release notes](https://github.com/aspnet/Universe/releases) - [Changelog](https://github.com/aspnet/Universe/blob/master/docs/CrossRepoBreakingChanges.md) - [Commits](https://github.com/aspnet/Universe/compare/2.1.1...2.1.4) Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump Microsoft.AspNetCore.All in /samples/Google Adapter Sample (#228) Bumps [Microsoft.AspNetCore.All](https://github.com/aspnet/Universe) from 2.1.1 to 2.1.4. - [Release notes](https://github.com/aspnet/Universe/releases) - [Changelog](https://github.com/aspnet/Universe/blob/master/docs/CrossRepoBreakingChanges.md) - [Commits](https://github.com/aspnet/Universe/compare/2.1.1...2.1.4) Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump Microsoft.AspNetCore.All in /samples/BestMatch Middleware Sample (#226) Bumps [Microsoft.AspNetCore.All](https://github.com/aspnet/Universe) from 2.1.1 to 2.1.4. - [Release notes](https://github.com/aspnet/Universe/releases) - [Changelog](https://github.com/aspnet/Universe/blob/master/docs/CrossRepoBreakingChanges.md) - [Commits](https://github.com/aspnet/Universe/compare/2.1.1...2.1.4) Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump Microsoft.AspNetCore.All in /samples/Alexa Adapter Sample (#227) Bumps [Microsoft.AspNetCore.All](https://github.com/aspnet/Universe) from 2.1.1 to 2.1.4. - [Release notes](https://github.com/aspnet/Universe/releases) - [Changelog](https://github.com/aspnet/Universe/blob/master/docs/CrossRepoBreakingChanges.md) - [Commits](https://github.com/aspnet/Universe/compare/2.1.1...2.1.4) Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Gary Pretty <[email protected]> * Update adaptor to use current elastic 7.x (#233) * Update adaptor to use current elastic 7.x * Update ElasticsearchStorage.cs * Ported the BestMatch Middleware Sample to MVC. (#200) Co-authored-by: Gary Pretty <[email protected]> * Refactor of Alexa adapter (#179) * - Initial Alexa adapter refactor to adopt Alexa.Net - Moved towards deprecating the AlexaHttpAdapter (kept for backwards compat) * - Updated Directory Build Props to include StyleCop package - Enable warnings as errors for Alexa project * - Added attachment types for directives / cards etc. - Updated content extension methods to use Alexa.NET and attachments model - Updated some core adapter logic * - Added support for Directives - Updated logic to use attachments as opposed to TurnState - Further adapter logic updates * Update GitVersion tag for feature branches * - Moved method for stylecop * Update GitVersion to attempt to ensure package names are incremented correctly on each build. * Updated package dependencies for Alexa adapter * Updated Alexa Sample * Update readme for preview package * Amended middleware and adaper for skills support * Updates following PR feedback * Removed ContinueConversationAsync overload not available until SDK 4.7. Will be re-added later for skills support. * Add LaunchRequest -> ConversationUpdate logic to middleware as per @pavolum's idea. * Added message activity concat and suggested actions conversion to google adapter * Adding configurable flag which will inform the adapter if it should concat multiple text activities in one turn * minor clean up * removing google adapter changes, renaming functions, removing suggested action conversion * Remove unused option * - Some naming tweaks - Added policy for handling multiple outgoing activities. - Added ContinueConversationAsync method * Move multiple activity policy enum out of options class * Naming tweak for outgoing activity policy * Update docs and add automatic end of session when no outgoing activities are sent * Readme update * Change default concat policy. Update readme. * Changes following code review (#195) * Move the activities list to within the turn context * Update adapter to make activity processing method virtual and remove multiple activity policy. Improved concat logic. * Fix speak concat bug * Add first Alexa tests * Update README.md * Update Bot Builder NuGet references * Updates to Alexa Adapter to pull out core package with request / activity transform logic, attachment types and context extension methods. * Fix failing test * Updates to move middleware into adapter. Rename helper to AlexaRequestMapper * Further refinements of mapper * Update AlexaRequestMapperOptions.cs * Updates to mapper / options * Add Alexa Auth Handler. (#204) * Rename some methods on Alexa Mapper. Update NuGet packages to 4.8. * Rename auth handler class name * Removing old Alexa auth handler * Fix test project dependencies * Update Alexa Core project file * Amend pipeline to try and resolve dotnet pack issue * Remvoed and re-added Alexa projects to SLN * Attempt to address issue with GitVersion env vars no longer shared across pipeline tasks * Update pipeline * Update Auth Handler (#205) * Add Alexa Auth Handler. * Fix crazyness in merge. * again. * Add Alexa Skill Id validation check. * Tabs to spaces * Add a couple tests. * Separate skill id check. * Set ExpectReplies and add more tests. * Dont NRE when activities is null. * Release/4.8.0 (#206) * Google Adapter: Google Content Type not set to UTF-8 * Alexa Adapter: Add person to alexasystem to support Alexa voiceprint to know the ID of the speaker (#198) - Thanks @jamesemann * TwitterAdapter: Added unit tests (#197) - Thanks @matiasroldan6 @santgr11 * DevOps: Azure DevOps Pipelines GitVersion issue * Dependencies: Update to Bot Framework SDK 4.8 * Fix bug with not handling built in StopIntent * Add virtual to auth methods (#209) * Add Alexa Auth Handler. * Fix crazyness in merge. * again. * Add Alexa Skill Id validation check. * Tabs to spaces * Add a couple tests. * Separate skill id check. * Set ExpectReplies and add more tests. * Dont NRE when activities is null. * Make methods virutal for mocking * Add check for Request being null so we don't throw NRE on bad requests from Alexa. Co-authored-by: Gary Pretty <[email protected]> * Add fallback support for Alexa request types => EventActivity * Add a simple markdown to plain text converter (#210) * Add Alexa Auth Handler. * Fix crazyness in merge. * again. * Add Alexa Skill Id validation check. * Tabs to spaces * Add a couple tests. * Separate skill id check. * Set ExpectReplies and add more tests. * Dont NRE when activities is null. * Make methods virutal for mocking * Add check for Request being null so we don't throw NRE on bad requests from Alexa. * Add simple markdown formatter Co-authored-by: Gary Pretty <[email protected]> * Update attachment implementation (#213) * Update attachment implementation to align with BF SDK and work correctly with ABS. * Added tests for new attachment implementation * Moved text normalization logic earlier and amended markdown handling (#212) * Moved logic for text normalization earlier in the pipeline into the MergeActivities method. * Modified markdown renderer to use period instead of new line. Amended list rendering. Added tests. Changed default to markdown. * Convert Alexa attachment types to their strong type if needed. (#214) * Update utility naming to helpers (aligns with SDK / other adapters). (#216) * Merge attachments in activities so they are available in the last message (#217) * Merge attachments in activities so they are available in the last message. * Fix attachments. * Fix for attachment null property handling * Update attachment tests * Remove test for missing attachment properties. Attachments / directives have optional properties, so not all properties will always be present. * Fix tests failing with equality of ref types * Project file with additional NuGet dependency Co-authored-by: Gary Pretty <[email protected]> * Update Alexa sample to use latest preview package. Fix assembly name causing Azure deployment issue. Updated sample attachment config. * Added the Alexa Adapter Sample to the Solution (#220) The project was missing from the solution so I have now added it as a part of solution. * Remove conversation type per Activity docs (#229) * Update Alexa Sample * Update README.md * Update readme * Attempt to resolve NuGet dependency between Alexa packages * Update project file ref for local NuGet package * Force alexa project to generate local package * More... * Update for nupack * Fix pipelines pack command Co-authored-by: Patrick Volum <[email protected]> Co-authored-by: Nick Ericson <[email protected]> Co-authored-by: Arafat Tehsin <[email protected]> * Feature/adopt alexadotnet (#235) * - Initial Alexa adapter refactor to adopt Alexa.Net - Moved towards deprecating the AlexaHttpAdapter (kept for backwards compat) * - Updated Directory Build Props to include StyleCop package - Enable warnings as errors for Alexa project * - Added attachment types for directives / cards etc. - Updated content extension methods to use Alexa.NET and attachments model - Updated some core adapter logic * - Added support for Directives - Updated logic to use attachments as opposed to TurnState - Further adapter logic updates * Update GitVersion tag for feature branches * - Moved method for stylecop * Update GitVersion to attempt to ensure package names are incremented correctly on each build. * Updated package dependencies for Alexa adapter * Updated Alexa Sample * Update readme for preview package * Amended middleware and adaper for skills support * Updates following PR feedback * Removed ContinueConversationAsync overload not available until SDK 4.7. Will be re-added later for skills support. * Add LaunchRequest -> ConversationUpdate logic to middleware as per @pavolum's idea. * Added message activity concat and suggested actions conversion to google adapter * Adding configurable flag which will inform the adapter if it should concat multiple text activities in one turn * minor clean up * removing google adapter changes, renaming functions, removing suggested action conversion * Remove unused option * - Some naming tweaks - Added policy for handling multiple outgoing activities. - Added ContinueConversationAsync method * Move multiple activity policy enum out of options class * Naming tweak for outgoing activity policy * Update docs and add automatic end of session when no outgoing activities are sent * Readme update * Change default concat policy. Update readme. * Changes following code review (#195) * Move the activities list to within the turn context * Update adapter to make activity processing method virtual and remove multiple activity policy. Improved concat logic. * Fix speak concat bug * Add first Alexa tests * Update README.md * Update Bot Builder NuGet references * Updates to Alexa Adapter to pull out core package with request / activity transform logic, attachment types and context extension methods. * Fix failing test * Updates to move middleware into adapter. Rename helper to AlexaRequestMapper * Further refinements of mapper * Update AlexaRequestMapperOptions.cs * Updates to mapper / options * Add Alexa Auth Handler. (#204) * Rename some methods on Alexa Mapper. Update NuGet packages to 4.8. * Rename auth handler class name * Removing old Alexa auth handler * Fix test project dependencies * Update Alexa Core project file * Amend pipeline to try and resolve dotnet pack issue * Remvoed and re-added Alexa projects to SLN * Attempt to address issue with GitVersion env vars no longer shared across pipeline tasks * Update pipeline * Update Auth Handler (#205) * Add Alexa Auth Handler. * Fix crazyness in merge. * again. * Add Alexa Skill Id validation check. * Tabs to spaces * Add a couple tests. * Separate skill id check. * Set ExpectReplies and add more tests. * Dont NRE when activities is null. * Release/4.8.0 (#206) * Google Adapter: Google Content Type not set to UTF-8 * Alexa Adapter: Add person to alexasystem to support Alexa voiceprint to know the ID of the speaker (#198) - Thanks @jamesemann * TwitterAdapter: Added unit tests (#197) - Thanks @matiasroldan6 @santgr11 * DevOps: Azure DevOps Pipelines GitVersion issue * Dependencies: Update to Bot Framework SDK 4.8 * Fix bug with not handling built in StopIntent * Add virtual to auth methods (#209) * Add Alexa Auth Handler. * Fix crazyness in merge. * again. * Add Alexa Skill Id validation check. * Tabs to spaces * Add a couple tests. * Separate skill id check. * Set ExpectReplies and add more tests. * Dont NRE when activities is null. * Make methods virutal for mocking * Add check for Request being null so we don't throw NRE on bad requests from Alexa. Co-authored-by: Gary Pretty <[email protected]> * Add fallback support for Alexa request types => EventActivity * Add a simple markdown to plain text converter (#210) * Add Alexa Auth Handler. * Fix crazyness in merge. * again. * Add Alexa Skill Id validation check. * Tabs to spaces * Add a couple tests. * Separate skill id check. * Set ExpectReplies and add more tests. * Dont NRE when activities is null. * Make methods virutal for mocking * Add check for Request being null so we don't throw NRE on bad requests from Alexa. * Add simple markdown formatter Co-authored-by: Gary Pretty <[email protected]> * Update attachment implementation (#213) * Update attachment implementation to align with BF SDK and work correctly with ABS. * Added tests for new attachment implementation * Moved text normalization logic earlier and amended markdown handling (#212) * Moved logic for text normalization earlier in the pipeline into the MergeActivities method. * Modified markdown renderer to use period instead of new line. Amended list rendering. Added tests. Changed default to markdown. * Convert Alexa attachment types to their strong type if needed. (#214) * Update utility naming to helpers (aligns with SDK / other adapters). (#216) * Merge attachments in activities so they are available in the last message (#217) * Merge attachments in activities so they are available in the last message. * Fix attachments. * Fix for attachment null property handling * Update attachment tests * Remove test for missing attachment properties. Attachments / directives have optional properties, so not all properties will always be present. * Fix tests failing with equality of ref types * Project file with additional NuGet dependency Co-authored-by: Gary Pretty <[email protected]> * Update Alexa sample to use latest preview package. Fix assembly name causing Azure deployment issue. Updated sample attachment config. * Added the Alexa Adapter Sample to the Solution (#220) The project was missing from the solution so I have now added it as a part of solution. * Remove conversation type per Activity docs (#229) * Update Alexa Sample * Update README.md * Update readme * Attempt to resolve NuGet dependency between Alexa packages * Update project file ref for local NuGet package * Force alexa project to generate local package * More... * Update for nupack * Fix pipelines pack command * Convert other attachments to their strong type (#234) Co-authored-by: Patrick Volum <[email protected]> Co-authored-by: Nick Ericson <[email protected]> Co-authored-by: Arafat Tehsin <[email protected]> Co-authored-by: Nick Ericson <[email protected]> * Update README.md * Update README.md * Update README.md * Update README.md Remove preview label for Alexa adapter * Change Alexa md renderer to remove trailing periods. Added more tests. (#237) * Change Alexa md renderer to remove trailing periods. Added more tests. * Fix link and quote md rendering Co-authored-by: Gary Pretty <[email protected]> * Zoom Adapter (#240) * Add Zoom adapter project * Working Zoom adapter including message templates. * Updated Zoom Readme and made some refactorings to solution * Update README.md * Update README.md * Update README.md * Zoom adapter request verification (#241) * Add Zoom adapter project * Working Zoom adapter including message templates. * Updated Zoom Readme and made some refactorings to solution * Fixed Zoom request verification * Don't escape Text (#238) * Update project URLs for packages * Added the class attribute (#242) ..to remain consistent with other adapters. * Update readmes for Alexa / Zoom to update NuGet instructions * Update repo readme * Update README.md * Update README.md * Added channel ID to outgoing Zoom activity mapping Co-authored-by: Jamie D <[email protected]> Co-authored-by: martinoss <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Alex ln <[email protected]> Co-authored-by: Arafat Tehsin <[email protected]> Co-authored-by: Patrick Volum <[email protected]> Co-authored-by: Nick Ericson <[email protected]> Co-authored-by: Nick Ericson <[email protected]> * Release 05/15/2020 (#250) * Adding RingCentral adapter (#215) * Adding RingCentral adapter * Updating documentation #wip * Adding packaging details * Addressing warnings Co-authored-by: Gary Pretty <[email protected]> * Adding sample RingCentral Adapter bot (#221) * Adding RingCentral adapter * Updating documentation #wip * Adding packaging details * Addressing warnings * Adding RingCentral Adapter sample and updating documentation * Fix up unit tests * Adding RingCentral reference to main doc * Fix up git ignore Co-authored-by: Gary Pretty <[email protected]> * Update README.md * Update README.md * Add GitHub link to profile (#223) * Updated sample package references. Added ring central sample. (#224) * Updated sample package references. Added ring central sample. * Update dotnet pack yaml config * Further update to dotnet pack yaml to fix no matching projects build pipeline error. * Bump Microsoft.AspNetCore.All in /samples/Form Flow Sample (#225) Bumps [Microsoft.AspNetCore.All](https://github.com/aspnet/Universe) from 2.1.1 to 2.1.4. - [Release notes](https://github.com/aspnet/Universe/releases) - [Changelog](https://github.com/aspnet/Universe/blob/master/docs/CrossRepoBreakingChanges.md) - [Commits](https://github.com/aspnet/Universe/compare/2.1.1...2.1.4) Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump Microsoft.AspNetCore.All in /samples/Google Adapter Sample (#228) Bumps [Microsoft.AspNetCore.All](https://github.com/aspnet/Universe) from 2.1.1 to 2.1.4. - [Release notes](https://github.com/aspnet/Universe/releases) - [Changelog](https://github.com/aspnet/Universe/blob/master/docs/CrossRepoBreakingChanges.md) - [Commits](https://github.com/aspnet/Universe/compare/2.1.1...2.1.4) Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump Microsoft.AspNetCore.All in /samples/BestMatch Middleware Sample (#226) Bumps [Microsoft.AspNetCore.All](https://github.com/aspnet/Universe) from 2.1.1 to 2.1.4. - [Release notes](https://github.com/aspnet/Universe/releases) - [Changelog](https://github.com/aspnet/Universe/blob/master/docs/CrossRepoBreakingChanges.md) - [Commits](https://github.com/aspnet/Universe/compare/2.1.1...2.1.4) Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump Microsoft.AspNetCore.All in /samples/Alexa Adapter Sample (#227) Bumps [Microsoft.AspNetCore.All](https://github.com/aspnet/Universe) from 2.1.1 to 2.1.4. - [Release notes](https://github.com/aspnet/Universe/releases) - [Changelog](https://github.com/aspnet/Universe/blob/master/docs/CrossRepoBreakingChanges.md) - [Commits](https://github.com/aspnet/Universe/compare/2.1.1...2.1.4) Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Gary Pretty <[email protected]> * Update adaptor to use current elastic 7.x (#233) * Update adaptor to use current elastic 7.x * Update ElasticsearchStorage.cs * Ported the BestMatch Middleware Sample to MVC. (#200) Co-authored-by: Gary Pretty <[email protected]> * Refactor of Alexa adapter (#179) * - Initial Alexa adapter refactor to adopt Alexa.Net - Moved towards deprecating the AlexaHttpAdapter (kept for backwards compat) * - Updated Directory Build Props to include StyleCop package - Enable warnings as errors for Alexa project * - Added attachment types for directives / cards etc. - Updated content extension methods to use Alexa.NET and attachments model - Updated some core adapter logic * - Added support for Directives - Updated logic to use attachments as opposed to TurnState - Further adapter logic updates * Update GitVersion tag for feature branches * - Moved method for stylecop * Update GitVersion to attempt to ensure package names are incremented correctly on each build. * Updated package dependencies for Alexa adapter * Updated Alexa Sample * Update readme for preview package * Amended middleware and adaper for skills support * Updates following PR feedback * Removed ContinueConversationAsync overload not available until SDK 4.7. Will be re-added later for skills support. * Add LaunchRequest -> ConversationUpdate logic to middleware as per @pavolum's idea. * Added message activity concat and suggested actions conversion to google adapter * Adding configurable flag which will inform the adapter if it should concat multiple text activities in one turn * minor clean up * removing google adapter changes, renaming functions, removing suggested action conversion * Remove unused option * - Some naming tweaks - Added policy for handling multiple outgoing activities. - Added ContinueConversationAsync method * Move multiple activity policy enum out of options class * Naming tweak for outgoing activity policy * Update docs and add automatic end of session when no outgoing activities are sent * Readme update * Change default concat policy. Update readme. * Changes following code review (#195) * Move the activities list to within the turn context * Update adapter to make activity processing method virtual and remove multiple activity policy. Improved concat logic. * Fix speak concat bug * Add first Alexa tests * Update README.md * Update Bot Builder NuGet references * Updates to Alexa Adapter to pull out core package with request / activity transform logic, attachment types and context extension methods. * Fix failing test * Updates to move middleware into adapter. Rename helper to AlexaRequestMapper * Further refinements of mapper * Update AlexaRequestMapperOptions.cs * Updates to mapper / options * Add Alexa Auth Handler. (#204) * Rename some methods on Alexa Mapper. Update NuGet packages to 4.8. * Rename auth handler class name * Removing old Alexa auth handler * Fix test project dependencies * Update Alexa Core project file * Amend pipeline to try and resolve dotnet pack issue * Remvoed and re-added Alexa projects to SLN * Attempt to address issue with GitVersion env vars no longer shared across pipeline tasks * Update pipeline * Update Auth Handler (#205) * Add Alexa Auth Handler. * Fix crazyness in merge. * again. * Add Alexa Skill Id validation check. * Tabs to spaces * Add a couple tests. * Separate skill id check. * Set ExpectReplies and add more tests. * Dont NRE when activities is null. * Release/4.8.0 (#206) * Google Adapter: Google Content Type not set to UTF-8 * Alexa Adapter: Add person to alexasystem to support Alexa voiceprint to know the ID of the speaker (#198) - Thanks @jamesemann * TwitterAdapter: Added unit tests (#197) - Thanks @matiasroldan6 @santgr11 * DevOps: Azure DevOps Pipelines GitVersion issue * Dependencies: Update to Bot Framework SDK 4.8 * Fix bug with not handling built in StopIntent * Add virtual to auth methods (#209) * Add Alexa Auth Handler. * Fix crazyness in merge. * again. * Add Alexa Skill Id validation check. * Tabs to spaces * Add a couple tests. * Separate skill id check. * Set ExpectReplies and add more tests. * Dont NRE when activities is null. * Make methods virutal for mocking * Add check for Request being null so we don't throw NRE on bad requests from Alexa. Co-authored-by: Gary Pretty <[email protected]> * Add fallback support for Alexa request types => EventActivity * Add a simple markdown to plain text converter (#210) * Add Alexa Auth Handler. * Fix crazyness in merge. * again. * Add Alexa Skill Id validation check. * Tabs to spaces * Add a couple tests. * Separate skill id check. * Set ExpectReplies and add more tests. * Dont NRE when activities is null. * Make methods virutal for mocking * Add check for Request being null so we don't throw NRE on bad requests from Alexa. * Add simple markdown formatter Co-authored-by: Gary Pretty <[email protected]> * Update attachment implementation (#213) * Update attachment implementation to align with BF SDK and work correctly with ABS. * Added tests for new attachment implementation * Moved text normalization logic earlier and amended markdown handling (#212) * Moved logic for text normalization earlier in the pipeline into the MergeActivities method. * Modified markdown renderer to use period instead of new line. Amended list rendering. Added tests. Changed default to markdown. * Convert Alexa attachment types to their strong type if needed. (#214) * Update utility naming to helpers (aligns with SDK / other adapters). (#216) * Merge attachments in activities so they are available in the last message (#217) * Merge attachments in activities so they are available in the last message. * Fix attachments. * Fix for attachment null property handling * Update attachment tests * Remove test for missing attachment properties. Attachments / directives have optional properties, so not all properties will always be present. * Fix tests failing with equality of ref types * Project file with additional NuGet dependency Co-authored-by: Gary Pretty <[email protected]> * Update Alexa sample to use latest preview package. Fix assembly name causing Azure deployment issue. Updated sample attachment config. * Added the Alexa Adapter Sample to the Solution (#220) The project was missing from the solution so I have now added it as a part of solution. * Remove conversation type per Activity docs (#229) * Update Alexa Sample * Update README.md * Update readme * Attempt to resolve NuGet dependency between Alexa packages * Update project file ref for local NuGet package * Force alexa project to generate local package * More... * Update for nupack * Fix pipelines pack command Co-authored-by: Patrick Volum <[email protected]> Co-authored-by: Nick Ericson <[email protected]> Co-authored-by: Arafat Tehsin <[email protected]> * Feature/adopt alexadotnet (#235) * - Initial Alexa adapter refactor to adopt Alexa.Net - Moved towards deprecating the AlexaHttpAdapter (kept for backwards compat) * - Updated Directory Build Props to include StyleCop package - Enable warnings as errors for Alexa project * - Added attachment types for directives / cards etc. - Updated content extension methods to use Alexa.NET and attachments model - Updated some core adapter logic * - Added support for Directives - Updated logic to use attachments as opposed to TurnState - Further adapter logic updates * Update GitVersion tag for feature branches * - Moved method for stylecop * Update GitVersion to attempt to ensure package names are incremented correctly on each build. * Updated package dependencies for Alexa adapter * Updated Alexa Sample * Update readme for preview package * Amended middleware and adaper for skills support * Updates following PR feedback * Removed ContinueConversationAsync overload not available until SDK 4.7. Will be re-added later for skills support. * Add LaunchRequest -> ConversationUpdate logic to middleware as per @pavolum's idea. * Added message activity concat and suggested actions conversion to google adapter * Adding configurable flag which will inform the adapter if it should concat multiple text activities in one turn * minor clean up * removing google adapter changes, renaming functions, removing suggested action conversion * Remove unused option * - Some naming tweaks - Added policy for handling multiple outgoing activities. - Added ContinueConversationAsync method * Move multiple activity policy enum out of options class * Naming tweak for outgoing activity policy * Update docs and add automatic end of session when no outgoing activities are sent * Readme update * Change default concat policy. Update readme. * Changes following code review (#195) * Move the activities list to within the turn context * Update adapter to make activity processing method virtual and remove multiple activity policy. Improved concat logic. * Fix speak concat bug * Add first Alexa tests * Update README.md * Update Bot Builder NuGet references * Updates to Alexa Adapter to pull out core package with request / activity transform logic, attachment types and context extension methods. * Fix failing test * Updates to move middleware into adapter. Rename helper to AlexaRequestMapper * Further refinements of mapper * Update AlexaRequestMapperOptions.cs * Updates to mapper / options * Add Alexa Auth Handler. (#204) * Rename some methods on Alexa Mapper. Update NuGet packages to 4.8. * Rename auth handler class name * Removing old Alexa auth handler * Fix test project dependencies * Update Alexa Core project file * Amend pipeline to try and resolve dotnet pack issue * Remvoed and re-added Alexa projects to SLN * Attempt to address issue with GitVersion env vars no longer shared across pipeline tasks * Update pipeline * Update Auth Handler (#205) * Add Alexa Auth Handler. * Fix crazyness in merge. * again. * Add Alexa Skill Id validation check. * Tabs to spaces * Add a couple tests. * Separate skill id check. * Set ExpectReplies and add more tests. * Dont NRE when activities is null. * Release/4.8.0 (#206) * Google Adapter: Google Content Type not set to UTF-8 * Alexa Adapter: Add person to alexasystem to support Alexa voiceprint to know the ID of the speaker (#198) - Thanks @jamesemann * TwitterAdapter: Added unit tests (#197) - Thanks @matiasroldan6 @santgr11 * DevOps: Azure DevOps Pipelines GitVersion issue * Dependencies: Update to Bot Framework SDK 4.8 * Fix bug with not handling built in StopIntent * Add virtual to auth methods (#209) * Add Alexa Auth Handler. * Fix crazyness in merge. * again. * Add Alexa Skill Id validation check. * Tabs to spaces * Add a couple tests. * Separate skill id check. * Set ExpectReplies and add more tests. * Dont NRE when activities is null. * Make methods virutal for mocking * Add check for Request being null so we don't throw NRE on bad requests from Alexa. Co-authored-by: Gary Pretty <[email protected]> * Add fallback support for Alexa request types => EventActivity * Add a simple markdown to plain text converter (#210) * Add Alexa Auth Handler. * Fix crazyness in merge. * again. * Add Alexa Skill Id validation check. * Tabs to spaces * Add a couple tests. * Separate skill id check. * Set ExpectReplies and add more tests. * Dont NRE when activities is null. * Make methods virutal for mocking * Add check for Request being null so we don't throw NRE on bad requests from Alexa. * Add simple markdown formatter Co-authored-by: Gary Pretty <[email protected]> * Update attachment implementation (#213) * Update attachment implementation to align with BF SDK and work correctly with ABS. * Added tests for new attachment implementation * Moved text normalization logic earlier and amended markdown handling (#212) * Moved logic for text normalization earlier in the pipeline into the MergeActivities method. * Modified markdown renderer to use period instead of new line. Amended list rendering. Added tests. Changed default to markdown. * Convert Alexa attachment types to their strong type if needed. (#214) * Update utility naming to helpers (aligns with SDK / other adapters). (#216) * Merge attachments in activities so they are available in the last message (#217) * Merge attachments in activities so they are available in the last message. * Fix attachments. * Fix for attachment null property handling * Update attachment tests * Remove test for missing attachment properties. Attachments / directives have optional properties, so not all properties will always be present. * Fix tests failing with equality of ref types * Project file with additional NuGet dependency Co-authored-by: Gary Pretty <[email protected]> * Update Alexa sample to use latest preview package. Fix assembly name causing Azure deployment issue. Updated sample attachment config. * Added the Alexa Adapter Sample to the Solution (#220) The project was missing from the solution so I have now added it as a part of solution. * Remove conversation type per Activity docs (#229) * Update Alexa Sample * Update README.md * Update readme * Attempt to resolve NuGet dependency between Alexa packages * Update project file ref for local NuGet package * Force alexa project to generate local package * More... * Update for nupack * Fix pipelines pack command * Convert other attachments to their strong type (#234) Co-authored-by: Patrick Volum <[email protected]> Co-authored-by: Nick Ericson <[email protected]> Co-authored-by: Arafat Tehsin <[email protected]> Co-authored-by: Nick Ericson <[email protected]> * Update README.md * Update README.md * Update README.md * Update README.md Remove preview label for Alexa adapter * Change Alexa md renderer to remove trailing periods. Added more tests. (#237) * Change Alexa md renderer to remove trailing periods. Added more tests. * Fix link and quote md rendering Co-authored-by: Gary Pretty <[email protected]> * Zoom Adapter (#240) * Add Zoom adapter project * Working Zoom adapter including message templates. * Updated Zoom Readme and made some refactorings to solution * Update README.md * Update README.md * Update README.md * Zoom adapter request verification (#241) * Add Zoom adapter project * Working Zoom adapter including message templates. * Updated Zoom Readme and made some refactorings to solution * Fixed Zoom request verification * Don't escape Text (#238) * Update project URLs for packages * Added the class attribute (#242) ..to remain consistent with other adapters. * Update readmes for Alexa / Zoom to update NuGet instructions * Update repo readme * Update README.md * Update README.md * Added channel ID to outgoing Zoom activity mapping * convert to csharp (#246) * Refactor of Google Adapter (#190) * - Initial Alexa adapter refactor to adopt Alexa.Net - Moved towards deprecating the AlexaHttpAdapter (kept for backwards compat) * - Updated Directory Build Props to include StyleCop package - Enable warnings as errors for Alexa project * - Added attachment types for directives / cards etc. - Updated content extension methods to use Alexa.NET and attachments model - Updated some core adapter logic * - Added support for Directives - Updated logic to use attachments as opposed to TurnState - Further adapter logic updates * Update GitVersion tag for feature branches * - Moved method for stylecop * Update GitVersion to attempt to ensure package names are incremented correctly on each build. * Updated package dependencies for Alexa adapter * Updated Alexa Sample * Update readme for preview package * Amended middleware and adaper for skills support * Updates following PR feedback * Removed ContinueConversationAsync overload not available until SDK 4.7. Will be re-added later for skills support. * Add LaunchRequest -> ConversationUpdate logic to middleware as per @pavolum's idea. * Added message activity concat and suggested actions conversion to google adapter * Adding configurable flag which will inform the adapter if it should concat multiple text activities in one turn * minor clean up * removing google adapter changes, renaming functions, removing suggested action conversion * Remove unused option * - Some naming tweaks - Added policy for handling multiple outgoing activities. - Added ContinueConversationAsync method * Move multiple activity policy enum out of options class * Naming tweak for outgoing activity policy * First iteration on Google refactor * Refactor of Google Adapter * Update samples for Alexa / Google * Update Google Adapter Sample * Update Google adapter to send conversation update activity when user initiates conversation without intent. * Updated readme and sample to use latest preview * Fix image links in readme. * Another attempt to fix images * Further image link fix * Update README.md * Update README.md * Update README.md * Image extension case fix * Update README.md * Updated response content type * Update Startup.cs * Update docs and add automatic end of session when no outgoing activities are sent * Readme update * Change default concat policy. Update readme. * Changes following code review (#195) * Move the activities list to within the turn context * Update adapter to make activity processing method virtual and remove multiple activity policy. Improved concat logic. * Update Google adapter with latest changes to mirror the Alexa adapter * Fix speak concat bug * Fix speak concat issue * Add first Alexa tests * Update README.md * Update README.md * Update Bot Builder NuGet references * Updates to Alexa Adapter to pull out core package with request / activity transform logic, attachment types and context extension methods. * Fix failing test * Updates to move middleware into adapter. Rename helper to AlexaRequestMapper * Further refinements of mapper * Update AlexaRequestMapperOptions.cs * Updates to mapper / options * Add Alexa Auth Handler. (#204) * Rename some methods on Alexa Mapper. Update NuGet packages to 4.8. * Rename auth handler class name * Removing old Alexa auth handler * Fix test project dependencies * Update Alexa Core project file * Amend pipeline to try and resolve dotnet pack issue * Remvoed and re-added Alexa projects to SLN * Attempt to address issue with GitVersion env vars no longer shared across pipeline tasks * Update pipeline * Update Auth Handler (#205) * Add Alexa Auth Handler. * Fix crazyness in merge. * again. * Add Alexa Skill Id validation check. * Tabs to spaces * Add a couple tests. * Separate skill id check. * Set ExpectReplies and add more tests. * Dont NRE when activities is null. * Fix bug with not handling built in StopIntent * Add virtual to auth methods (#209) * Add Alexa Auth Handler. * Fix crazyness in merge. * again. * Add Alexa Skill Id validation check. * Tabs to spaces * Add a couple tests. * Separate skill id check. * Set ExpectReplies and add more tests. * Dont NRE when activities is null. * Make methods virutal for mocking * Add check for Request being null so we don't throw NRE on bad requests from Alexa. Co-authored-by: Gary Pretty <[email protected]> * Add fallback support for Alexa request types => EventActivity * Add a simple markdown to plain text converter (#210) * Add Alexa Auth Handler. * Fix crazyness in merge. * again. * Add Alexa Skill Id validation check. * Tabs to spaces * Add a couple tests. * Separate skill id check. * Set ExpectReplies and add more tests. * Dont NRE when activities is null. * Make methods virutal for mocking * Add check for Request being null so we don't throw NRE on bad requests from Alexa. * Add simple markdown formatter Co-authored-by: Gary Pretty <[email protected]> * Update attachment implementation (#213) * Update attachment implementation to align with BF SDK and work correctly with ABS. * Added tests for new attachment implementation * Moved text normalization logic earlier and amended markdown handling (#212) * Moved logic for text normalization earlier in the pipeline into the MergeActivities method. * Modified markdown renderer to use period instead of new line. Amended list rendering. Added tests. Changed default to markdown. * Convert Alexa attachment types to their strong type if needed. (#214) * Update utility naming to helpers (aligns with SDK / other adapters). (#216) * Merge attachments in activities so they are available in the last message (#217) * Merge attachments in activities so they are available in the last message. * Fix attachments. * Fix for attachment null property handling * Update attachment tests * Remove test for missing attachment properties. Attachments / directives have optional properties, so not all properties will always be present. * Fix tests failing with equality of ref types * Project file with additional NuGet dependency Co-authored-by: Gary Pretty <[email protected]> * Updated the media files (#218) As Action SDK has been changed to Assistant SDK therefore I have updated them * Fixed typo & added .json to package file (#219) * Update Alexa sample to use latest preview package. Fix assembly name causing Azure deployment issue. Updated sample attachment config. * WIP on Google sync with current Alexa approach * Sync google with current alexa approach WIP * Further project factoring * Further refactoring. Split out conversations / dialogflow into separate request mappers. * Update to Google adapter WIP - addressing anonymous user id and removing attachment processing temporarily. * WIP * Significant updates to include Google specific attachment types for system intents and cards * Refactor RequestToActivity and add card / intent factories * Align DialogFlow mapper with Conversation Webhook - derive both from new abstract base class. * Implemented feedback following review Co-authored-by: Patrick Volum <[email protected]> Co-authored-by: Nick Ericson <[email protected]> Co-authored-by: Arafat Tehsin <[email protected]> * [AdaptiveDialogs] Add Rest actions (#232) * Add Adaptive Rest action * Add nuget metadata * Add Readme * Fix readme * Fix documentation * Fix sln * Fix merge sln Co-authored-by: Sébastien BIAUDET <[email protected]> * Add Infobip Adapter (#247) * Add Infobip Adapter * Updated readme to nuget vs myget. * Update readme * Switch to xunit * autoformat all files. * Sln file merge Co-authored-by: Gary Pretty <[email protected]> * Doc updates for Google Adapter (#249) * - Initial Alexa adapter refactor to adopt Alexa.Net - Moved towards deprecating the AlexaHttpAdapter (kept for backwards compat) * - Updated Directory Build Props to include StyleCop package - Enable warnings as errors for Alexa project * - Added attachment types for directives / cards etc. - Updated content extension methods to use Alexa.NET and attachments model - Updated some core adapter logic * - Added support for Directives - Updated logic to use attachments as opposed to TurnState - Further adapter logic updates * Update GitVersion tag for feature branches * - Moved method for stylecop * Update GitVersion to attempt to ensure package names are incremented correctly on each build. * Updated package dependencies for Alexa adapter * Updated Alexa Sample * Update readme for preview package * Amended middleware and adaper for skills support * Updates following PR feedback * Removed ContinueConversationAsync overload not available until SDK 4.7. Will be re-added later for skills support. * Add LaunchRequest -> ConversationUpdate logic to middleware as per @pavolum's idea. * Added message activity concat and suggested actions conversion to google adapter * Adding configurable flag which will inform the adapter if it should concat multiple text activities in one turn * minor clean up * removing google adapter changes, renaming functions, removing suggested action conversion * Remove unused option * - Some naming tweaks - Added policy for handling multiple outgoing activities. - Added ContinueConversationAsync method * Move multiple activity policy enum out of options class * Naming tweak for outgoing activity policy * First iteration on Google refactor * Refactor of Google Adapter * Update samples for Alexa / Google * Update Google Adapter Sample * Update Google adapter to send conversation update activity when user initiates conversation without intent. * Updated readme and sample to use latest preview * Fix image links in readme. * Another attempt to fix images * Further image link fix * Update README.md * Update README.md * Update README.md * Image extension case fix * Update README.md * Updated response content type * Update Startup.cs * Update docs and add automatic end of session when no outgoing activities are sent * Readme update * Change default concat policy. Update readme. * Changes following code review (#195) * Move the activities list to within the turn context * Update adapter to make activity processing method virtual and remove multiple activity policy. Improved concat logic. * Update Google adapter with latest changes to mirror the Alexa adapter * Fix speak concat bug * Fix speak concat issue * Add first Alexa tests * Update README.md * Update README.md * Update Bot Builder NuGet references * Updates to Alexa Adapter to pull out core package with request / activity transform logic, attachment types and context extension methods. * Fix failing test * Updates to move middleware into adapter. Rename helper to AlexaRequestMapper * Further refinements of mapper * Update AlexaRequestMapperOptions.cs * Updates to mapper / options * Add Alexa Auth Handler. (#204) * Rename some methods on Alexa Mapper. Update NuGet packages to 4.8. * Rename auth handler class name * Removing old Alexa auth handler * Fix test project dependencies * Update Alexa Core project file * Amend pipeline to try and resolve dotnet pack issue * Remvoed and re-added Alexa projects to SLN * Attempt to address issue with GitVersion env vars no longer shared across pipeline tasks * Update pipeline * Update Auth Handler (#205) * Add Alexa Auth Handler. * Fix crazyness in merge. * again. * Add Alexa Skill Id validation check. * Tabs to spaces * Add a couple tests. * Separate skill id check. * Set ExpectReplies and add more tests. * Dont NRE when activities is null. * Fix bug with not handling built in StopIntent * Add virtual to auth methods (#209) * Add Alexa Auth Handler. * Fix crazyness in merge. * again. * Add Alexa Skill Id validation check. * Tabs to spaces * Add a couple tests. * Separate skill id check. * Set ExpectReplies and add more tests. * Dont NRE when activities is null. * Make methods virutal for mocking * Add check for Request being null so we don't throw NRE on bad requests from Alexa. Co-authored-by: Gary Pretty <[email protected]> * Add fallback support for Alexa request types => EventActivity * Add a simple markdown to plain text converter (#210) * Add Alexa Auth Handler. * Fix crazyness in merge. * again. * Add Alexa Skill Id validation check. * Tabs to spaces * Add a couple tests. * Separate skill id check. * Set ExpectReplies and add more tests. * Dont NRE when activities is null. * Make methods virutal for mocking * Add check for Request being null so we don't throw NRE on bad requests from Alexa. * Add simple markdown formatter Co-authored-by: Gary Pretty <[email protected]> * Update attachment implementation (#213) * Update attachment implementation to align with BF SDK and work correctly with ABS. * Added tests for new attachment implementation * Moved text normalization logic earlier and amended markdown handling (#212) * Moved logic for text normalization earlier in the pipeline into the MergeActivities method. * Modified markdown renderer to use period instead of new line. Amended list rendering. Added tests. Changed default to markdown. * Convert Alexa attachment types to their strong type if needed. (#214) * Update utility naming to helpers (aligns with SDK / other adapters). (#216) * Merge attachments in activities so they are available in the last message (#217) * Merge attachments in activities so they are available in the last message. * Fix attachments. * Fix for attachment null property handling * Update attachment tests * Remove test for missing attachment properties. Attachments / directives have optional properties, so not all properties will always be present. * Fix tests failing with equality of ref types * Project file with additional NuGet dependency Co-authored-by: Gary Pretty <[email protected]> * Updated the media files (#218) As Action SDK has been changed to Assistant SDK therefore I have updated them * Fixed typo & added .json to package file (#219) * Update Alexa sample to use latest preview package. Fix assembly name causing Azure deployment issue. Updated sample attachment config. * WIP on Google sync with current Alexa approach * Sync google with current alexa approach WIP * Further project factoring * Further refactoring. Split out conversations / dialogflow into separate request mappers. * Update to Google adapter WIP - addressing anonymous user id and removing attachment processing temporarily. * WIP * Significant updates to include Google specific attachment types for system intents and cards * Refactor RequestToActivity and add card / intent factories * Align DialogFlow mapper with Conversation Webhook - derive both from new abstract base class. * Implemented feedback following review * Updated Google Adapter Readme. Co-authored-by: Patrick Volum <[email protected]> Co-authored-by: Nick Ericson <[email protected]> Co-authored-by: Arafat Tehsin <[email protected]> * Update README.md Co-authored-by: Jamie D <[email protected]> Co-authored-by: martinoss <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Alex ln <[email protected]> Co-authored-by: Arafat Tehsin <[email protected]> Co-authored-by: Patrick Volum <[email protected]> Co-authored-by: Nick Ericson <[email protected]> Co-authored-by: Nick Ericson <[email protected]> Co-authored-by: Michael Richardson <[email protected]> Co-authored-by: Sébastien BIAUDET <[email protected]> Co-authored-by: Sébastien BIAUDET <[email protected]> Co-authored-by: Jamie D <[email protected]> Co-authored-by: martinoss <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Alex ln <[email protected]> Co-authored-by: Arafat Tehsin <[email protected]> Co-authored-by: Patrick Volum <[email protected]> Co-authored-by: Nick Ericson <[email protected]> Co-authored-by: Nick Ericson <[email protected]> Co-authored-by: Michael Richardson <[email protected]> Co-authored-by: Sébastien BIAUDET <[email protected]> Co-authored-by: Sébastien BIAUDET <[email protected]> * Update README.md * Update README.md * Update README.md * Update README.md * Update README.md * Fixed a small typo * Fix for Google validation which prevented a user from disabling checks (#253) * Further google request validation fix (#255) * Fix for Google validation which prevented a user from disabling checks * Further fix for Google request validation Co-authored-by: Jamie D <[email protected]> Co-authored-by: martinoss <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Alex ln <[email protected]> Co-authored-by: Arafat Tehsin <[email protected]> Co-authored-by: Patrick Volum <[email protected]> Co-authored-by: Nick Ericson <[email protected]> Co-authored-by: Nick Ericson <[email protected]> Co-authored-by: Michael Richardson <[email protected]> Co-authored-by: Sébastien BIAUDET <[email protected]> Co-authored-by: Sébastien BIAUDET <[email protected]> * Remove unnecessary try / catch * Release/06022020 (#268) * Master (#252) * Fix for Zoom adapter throwing on no channel ID (#245) * Adding RingCentral adapter (#215) * Adding RingCentral adapter * Updating documentation #wip * Adding packaging details * Addressing warnings Co-authored-by: Gary Pretty <[email protected]> * Adding sample RingCentral Adapter bot (#221) * Adding RingCentral adapter * Updating documentation #wip * Adding packaging details * Addressing warnings * Adding RingCentral Adapter sample and updating documentation * Fix up unit tests * Adding RingCentral reference to main doc * Fix up git ignore Co-authored-by: Gary Pretty <[email protected]> * Update README.md * Update README.md * Add GitHub link to profile (#223) * Updated sample package references. Added ring central sample. (#224) * Updated sample package references. Added ring central sample. * Update dotnet pack yaml config * Further update to dotnet pack yaml to fix no matching projects build pipeline error. * Bump Microsoft.AspNetCore.All in /samples/Form Flow Sample (#225) Bumps [Microsoft.AspNetCore.All](https://github.com/aspnet/Universe) from 2.1.1 to 2.1.4. - [Release notes](https://github.com/aspnet/Universe/releases) - [Changelog](https://github.com/aspnet/Universe/blob/master/docs/CrossRepoBreakingChanges.md) - [Commits](https://github.com/aspnet/Universe/compare/2.1.1...2.1.4) Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump Microsoft.AspNetCore.All in /samples/Google Adapter Sample (#228) Bumps [Microsoft.AspNetCore.All](https://github.com/aspnet/Universe) from 2.1.1 to 2.1.4. - [Release notes](https://github.com/aspnet/Universe/releases) - [Changelog](https://github.com/aspnet/Universe/blob/master/docs/CrossRepoBreakingChanges.md) - [Commits](https://github.com/aspnet/Universe/compare/2.1.1...2.1.4) Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump Microsoft.AspNetCore.All in /samples/BestMatch Middleware Sample (#226) Bumps [Microsoft.AspNetCore.All](https://github.com/aspnet/Universe) from 2.1.1 to 2.1.4. - [Release notes](https://github.com/aspnet/Universe/releases) - [Changelog](https://github.com/aspnet/Universe/blob/master/docs/CrossRepoBreakingChanges.md) - [Commits](https://github.com/aspnet/Universe/compare/2.1.1...2.1.4) Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump Microsoft.AspNetCore.All in /samples/Alexa Adapter Sample (#227) Bumps [Microsoft.AspNetCore.All](https://github.com/aspnet/Universe) from 2.1.1 to 2.1.4. - [Release notes](https://github.com/aspnet/Universe/releases) - [Changelog](https://github.com/aspnet/Universe/blob/master/docs/CrossRepoBreakingChanges.md) - [Commits](https://github.com/aspnet/Universe/compare/2.1.1...2.1.4) Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Gary Pretty <[email protected]> * Update adaptor to use current elastic 7.x (#233) * Update adaptor to use current elastic 7.x * Update ElasticsearchStorage.cs * Ported the BestMatch Middleware Sample to MVC. (#200) Co-authored-by: Gary Pretty <[email protected]> * Refactor of Alexa adapter (#179) * - Initial Alexa adapter refactor to adopt Alexa.Net - Moved towards deprecating the AlexaHttpAdapter (kept for backwards compat) * - Updated Directory Build Props to include StyleCop package - Enable warnings as errors for Alexa project * - Added attachment types for directives / cards etc. - Updated content extension methods to use Alexa.NET and attachments model - Updated some core adapter logic * - Added support for Directives - Updated logic to use attachments as opposed to TurnState - Further adapter logic updates * Update GitVersion tag for feature branches * - Moved method for stylecop * Update GitVersion to attempt to ensure package names are incremented correctly on each build. * Updated package dependencies for Alexa adapter * Updated Alexa Sample * Update readme for preview package * Amended middleware and adaper for skills support * Updates following PR feedback * Removed ContinueConversationAsync overload not available until SDK 4.7. Will be re-added later for skills support. * Add LaunchRequest -> ConversationUpdate logic to middleware as per @pavolum's idea. * Added message activity concat and suggested actions conversion to google adapter * Adding configurable flag which will inform the adapter if it should concat multiple text activities in one turn * minor clean up * removing google adapter changes, renaming functions, removing suggested action conversion * Remove unused option * - Some naming tweaks - Added policy for handling multiple outgoing activities. - Added ContinueConversationAsync method * Move multiple activity policy enum out of options class * Naming tweak for outgoing activity policy * Update docs and add automatic end of session when no outgoing activities are sent * Readme update * Change default concat policy. Update readme. * Changes following code review (#195) * Move the activities list to within the turn context * Update adapter to make activity processing method virtual and remove multiple activity policy. Improved concat logic. * Fix speak concat bug * Add first Alexa tests * Update README.md * Update Bot Builder NuGet references * Updates to Alexa Adapter to pull out core package with request / activity transform logic, attachment types and context extension methods. * Fix failing test * Updates to move middleware into adapter. Rename helper to AlexaRequestMapper * Further refinements of mapper * Update AlexaRequestMapperOptions.cs * Updates to mapper / options * Add Alexa Auth Handler. (#204) * Rename some methods on Alexa Mapper. Update NuGet packages to 4.8. * Rename auth handler class name * Removing old Alexa auth handler * Fix test project dependencies * Update Alexa Core project file * Amend pipeline to try and resolve dotnet pack issue * Remvoed and re-added Alexa projects to SLN * Attempt to address issue with GitVersion env vars no longer shared across pipeline tasks * Update pipeline * Update Auth Handler (#205) * Add Alexa Auth Handler. * Fix crazyness in merge. * again. * Add Alexa Skill Id validation check. * Tabs to spaces * Add a couple tests. * Separate skill id check. * Set ExpectReplies and add more tests. * Dont NRE when activities is null. * Release/4.8.0 (#206) * Google Adapter: Google Content Type not set to UTF-8 * Alexa Adapter: Add person to alexasystem to support Alexa voiceprint to know the ID of the speaker (#198) - Thanks @jamesemann * TwitterAdapter: Added unit tests (#197) - Thanks @matiasroldan6 @santgr11 * DevOps: Azure DevOps Pipelines GitVersion issue * Dependencies: Update to Bot Framework SDK 4.8 * Fix bug with not handling built in StopIntent * Add virtual to auth methods (#209) * Add Alexa Auth Handler. * Fix crazyness in merge. * again. * Add Alexa Skill Id validation check. * Tabs to spaces * Add a couple tests. * Separate skill id check. * Set ExpectReplies and add more tests. * Dont NRE when activities is null. * Make methods virutal for mocking * Add check for Request being null so we don't throw NRE on bad requests from Alexa. Co-authored-by: Gary Pretty <[email protected]> * Add fallback support for Alexa request types => EventActivity * Add a simple markdown to plain text converter (#210) * Add Alexa Auth Handler. * Fix crazyness in merge. * again. * Add Alexa Skill Id validation check. * Tabs to spaces * Add a couple tests. * Separate skill id check. * Set ExpectReplies and add more tests. * Dont NRE when activities is null. * Make methods virutal for mocking * Add check for Request being null so we don't throw NRE on bad requests from Alexa. * Add simple markdown formatter Co-authored-by: Gary Pretty <[email protected]> * Update attachment implementation (#213) * Update attachment implementation to align with BF SDK and work correctly with ABS. * Added tests for new attachment implementation * Moved text normalization logic earlier and amended markdown handling (#212) * Moved logic for text normalization earlier in the pipeline into the MergeActivities method. * Modified markdown renderer to use period instead of new line. Amended list rendering. Added tests. Changed default to markdown. * Convert Alexa attachment types to their strong type if needed. (#214) * Update utility naming to helpers (aligns with SDK / other adapters). (#216) * Merge attachments in activities so they are available in the last message (#217) * Merge attachments in activities so they are available in the last message. * Fix attachments. * Fix for attachment null property handling…
1 parent b3bd5c9 commit b220530

File tree

58 files changed

+902
-595
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

58 files changed

+902
-595
lines changed

Bot.Builder.Community.sln

+403-398
Large diffs are not rendered by default.

CommonTargets/library.shared.targets

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
<Project>
2+
3+
<PropertyGroup>
4+
<Bot_Builder_Version>4.9.2</Bot_Builder_Version>
5+
</PropertyGroup>
6+
7+
</Project>

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[![Build Status](https://dev.azure.com/BotBuilder-Community/dotnet/_apis/build/status/BotBuilderCommunity.botbuilder-community-dotnet?branchName=master)](https://dev.azure.com/BotBuilder-Community/dotnet/_build/latest?definitionId=1&branchName=master) [![Bot Builder Community NuGet](https://img.shields.io/badge/NuGet-blue.svg)](https://www.nuget.org/profiles/BotBuilderCommunity)
22

3-
**Latest release: v4.8.6 (15/04/2020) - [Release Notes](https://github.com/BotBuilderCommunity/botbuilder-community-dotnet/releases/tag/v4.8.6)**
3+
**Latest release: v4.9 (02/06/2020) - [Release Notes](https://github.com/BotBuilderCommunity/botbuilder-community-dotnet/releases/tag/v4.9)**
44

55
# Bot Builder Community - .NET Extensions
66

libraries/Bot.Builder.Community.Adapters.Alexa.Core/AlexaRequestMapper.cs

+80-33
Original file line numberDiff line numberDiff line change
@@ -67,22 +67,24 @@ public Activity RequestToActivity(SkillRequest skillRequest)
6767
return RequestToEventActivity(skillRequest);
6868
}
6969
}
70-
70+
7171
/// <summary>
7272
/// Creates a SkillResponse based on an Activity and original SkillRequest.
7373
/// </summary>
74-
/// <param name="activity">The Activity to use to create the SkillResponse</param>
74+
/// <param name="mergedActivityResult">The Merged Activity Result to use to create the SkillResponse</param>
7575
/// <param name="alexaRequest">Original SkillRequest received from Alexa Skills service. This is used
7676
/// to check if the original request was a SessionEndedRequest which should not return a response.</param>
7777
/// <returns>SkillResponse</returns>
78-
public SkillResponse ActivityToResponse(Activity activity, SkillRequest alexaRequest)
78+
public SkillResponse ActivityToResponse(MergedActivityResult mergedActivityResult, SkillRequest alexaRequest)
7979
{
8080
var response = new SkillResponse()
8181
{
8282
Version = "1.0",
8383
Response = new ResponseBody()
8484
};
8585

86+
var activity = mergedActivityResult?.MergedActivity;
87+
8688
if (activity == null || activity.Type != ActivityTypes.Message || alexaRequest.Request is SessionEndedRequest)
8789
{
8890
response.Response.ShouldEndSession = true;
@@ -106,18 +108,26 @@ public SkillResponse ActivityToResponse(Activity activity, SkillRequest alexaReq
106108

107109
if (ShouldSetEndSession(response))
108110
{
109-
switch (activity.InputHint)
111+
// If end of conversation was flagged use that, othwerwise look at the InputHint.
112+
if (mergedActivityResult.EndOfConversationFlagged)
110113
{
111-
case InputHints.IgnoringInput:
112-
response.Response.ShouldEndSession = true;
113-
break;
114-
case InputHints.ExpectingInput:
115-
response.Response.ShouldEndSession = false;
116-
response.Response.Reprompt = new Reprompt(activity.Text);
117-
break;
118-
default:
119-
response.Response.ShouldEndSession = _options.ShouldEndSessionByDefault;
120-
break;
114+
response.Response.ShouldEndSession = true;
115+
}
116+
else
117+
{
118+
switch (activity.InputHint)
119+
{
120+
case InputHints.IgnoringInput:
121+
response.Response.ShouldEndSession = true;
122+
break;
123+
case InputHints.ExpectingInput:
124+
response.Response.ShouldEndSession = false;
125+
response.Response.Reprompt = new Reprompt(activity.Text);
126+
break;
127+
default:
128+
response.Response.ShouldEndSession = _options.ShouldEndSessionByDefault;
129+
break;
130+
}
121131
}
122132
}
123133

@@ -133,36 +143,73 @@ public SkillResponse ActivityToResponse(Activity activity, SkillRequest alexaReq
133143
/// https://developer.amazon.com/en-US/docs/alexa/custom-skills/speech-synthesis-markup-language-ssml-reference.html#break
134144
/// </summary>
135145
/// <param name="activities">The list of one or more outgoing activities</param>
136-
/// <returns>Activity</returns>
137-
public Activity MergeActivities(IList<Activity> activities)
146+
/// <returns>MergedActivityResult</returns>
147+
public MergedActivityResult MergeActivities(IList<Activity> activities)
138148
{
139-
var messageActivities = activities?.Where(a => a.Type == ActivityTypes.Message).ToList();
140-
141-
if (messageActivities == null || messageActivities.Count == 0)
149+
if (activities == null || activities.Count == 0)
142150
{
143151
return null;
144152
}
145153

146-
var activity = messageActivities.Last();
154+
var mergedActivityResult = new MergedActivityResult();
147155

148-
if (messageActivities.Any(a => !string.IsNullOrEmpty(a.Speak)))
156+
bool hasSpeakField = false;
157+
var speakFields = new List<string>();
158+
var textFields = new List<string>();
159+
var attachments = new List<Attachment>();
160+
foreach (var activity in activities)
149161
{
150-
var speakText = string.Join("<break strength=\"strong\"/>", messageActivities
151-
.Select(a => !string.IsNullOrEmpty(a.Speak) ? StripSpeakTag(a.Speak) : NormalizeActivityText(a.TextFormat, a.Text, forSsml: true))
152-
.Where(s => !string.IsNullOrEmpty(s))
153-
.Select(s => s));
162+
if (activity == null)
163+
{
164+
continue;
165+
}
166+
167+
switch (activity.Type)
168+
{
169+
case ActivityTypes.Message:
170+
mergedActivityResult.MergedActivity = activity;
171+
if (!string.IsNullOrEmpty(activity.Speak))
172+
{
173+
hasSpeakField = true;
174+
speakFields.Add(StripSpeakTag(activity.Speak));
175+
}
176+
else if (!string.IsNullOrEmpty(activity.Text))
177+
{
178+
speakFields.Add(NormalizeActivityText(activity.TextFormat, activity.Text, forSsml: true));
179+
}
180+
181+
if (!string.IsNullOrEmpty(activity.Text))
182+
{
183+
var text = NormalizeActivityText(activity.TextFormat, activity.Text, forSsml: false);
184+
if (!string.IsNullOrEmpty(text))
185+
{
186+
textFields.Add(text.Trim(new char[] { ' ', '.' }));
187+
}
188+
}
154189

155-
activity.Speak = $"<speak>{speakText}</speak>";
190+
if (activity.Attachments != null && activity.Attachments.Count > 0)
191+
{
192+
attachments.AddRange(activity.Attachments);
193+
}
194+
break;
195+
case ActivityTypes.EndOfConversation:
196+
mergedActivityResult.EndOfConversationFlagged = true;
197+
break;
198+
}
156199
}
157200

158-
activity.Text = string.Join(". ", messageActivities
159-
.Select(a => NormalizeActivityText(a.TextFormat, a.Text, forSsml: false))
160-
.Where(s => !string.IsNullOrEmpty(s))
161-
.Select(s => s.Trim(new char[] { ' ', '.' })));
201+
if (mergedActivityResult.MergedActivity != null)
202+
{
203+
if (hasSpeakField)
204+
{
205+
mergedActivityResult.MergedActivity.Speak = $"<speak>{string.Join("<break strength=\"strong\"/>", speakFields)}</speak>";
206+
}
162207

163-
activity.Attachments = messageActivities.Where(x => x.Attachments != null).SelectMany(x => x.Attachments).ToList();
208+
mergedActivityResult.MergedActivity.Text = string.Join(". ", textFields);
209+
mergedActivityResult.MergedActivity.Attachments = attachments;
210+
}
164211

165-
return activity;
212+
return mergedActivityResult;
166213
}
167214

168215
private Activity RequestToEndOfConversationActivity(SkillRequest skillRequest)
@@ -185,7 +232,6 @@ private Activity RequestToMessageActivity(SkillRequest skillRequest, IntentReque
185232
var activity = Activity.CreateMessageActivity() as Activity;
186233
activity = SetGeneralActivityProperties(activity, skillRequest);
187234
activity.Text = intentRequest.Intent.Slots[_options.DefaultIntentSlotName].Value;
188-
activity.Locale = intentRequest.Locale;
189235
return activity;
190236
}
191237

@@ -249,6 +295,7 @@ private Activity SetGeneralActivityProperties(Activity activity, SkillRequest sk
249295
activity.Conversation = new ConversationAccount(isGroup: false, id: skillRequest.Session?.SessionId ?? skillRequest.Request.RequestId);
250296
activity.Timestamp = skillRequest.Request.Timestamp.ToUniversalTime();
251297
activity.ChannelData = skillRequest;
298+
activity.Locale = skillRequest.Request.Locale;
252299

253300
return activity;
254301
}

libraries/Bot.Builder.Community.Adapters.Alexa.Core/Bot.Builder.Community.Adapters.Alexa.Core.csproj

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
<Project Sdk="Microsoft.NET.Sdk">
2+
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove('$(MSBuildThisFileDirectory)../', 'Bot.Builder.Community.sln'))\CommonTargets\library.shared.targets" />
23

34
<PropertyGroup>
45
<TargetFramework>netstandard2.0</TargetFramework>
@@ -22,8 +23,7 @@
2223
<PackageReference Include="Alexa.NET" Version="1.13.3" />
2324
<PackageReference Include="Alexa.NET.CustomerProfile" Version="2.1.1" />
2425
<PackageReference Include="Microsoft.MarkedNet" Version="1.0.13" />
25-
<PackageReference Include="Microsoft.Bot.Builder" Version="4.9.2" />
26-
<PackageReference Include="Microsoft.Bot.Schema" Version="4.9.2" />
26+
<PackageReference Include="Microsoft.Bot.Builder" Version="$(Bot_Builder_Version)" />
2727
</ItemGroup>
2828

2929
</Project>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
using Microsoft.Bot.Schema;
2+
3+
namespace Bot.Builder.Community.Adapters.Alexa.Core
4+
{
5+
/// <summary>
6+
/// The result of merging a collection of Activities.
7+
/// </summary>
8+
public class MergedActivityResult
9+
{
10+
/// <summary>
11+
/// The merged activity
12+
/// </summary>
13+
public Activity MergedActivity;
14+
15+
/// <summary>
16+
/// Is end of conversation flagged (outside of the properties in the merged activity itself)
17+
/// </summary>
18+
public bool EndOfConversationFlagged;
19+
}
20+
}

libraries/Bot.Builder.Community.Adapters.Alexa/AlexaAdapter.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@ private async Task<SkillResponse> ProcessAlexaRequestAsync(SkillRequest alexaReq
155155
return response;
156156
}
157157

158-
public virtual Activity ProcessOutgoingActivities(List<Activity> activities)
158+
public virtual MergedActivityResult ProcessOutgoingActivities(List<Activity> activities)
159159
{
160160
return _requestMapper.MergeActivities(activities);
161161
}

libraries/Bot.Builder.Community.Adapters.Alexa/Bot.Builder.Community.Adapters.Alexa.csproj

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
<Project Sdk="Microsoft.NET.Sdk">
2+
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove('$(MSBuildThisFileDirectory)../', 'Bot.Builder.Community.sln'))\CommonTargets\library.shared.targets" />
23

34
<PropertyGroup>
45
<TargetFramework>netstandard2.0</TargetFramework>
@@ -20,7 +21,7 @@
2021
</PropertyGroup>
2122

2223
<ItemGroup>
23-
<PackageReference Include="Microsoft.Bot.Builder.Integration.AspNet.Core" Version="4.9.2" />
24+
<PackageReference Include="Microsoft.Bot.Builder.Integration.AspNet.Core" Version="$(Bot_Builder_Version)" />
2425
<PackageReference Include="Microsoft.Net.Http.Headers" Version="2.1.1" />
2526
</ItemGroup>
2627

libraries/Bot.Builder.Community.Adapters.Google.Core/Attachments/AttachmentHelper.cs

+9
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,9 @@ public static void ConvertAttachmentContent(this Activity activity)
4141
case GoogleAttachmentContentTypes.TableCard:
4242
Convert<TableCard>(attachment);
4343
break;
44+
case GoogleAttachmentContentTypes.BrowsingCarousel:
45+
Convert<BrowsingCarousel>(attachment);
46+
break;
4447
case GoogleAttachmentContentTypes.CarouselIntent:
4548
Convert<CarouselIntent>(attachment);
4649
break;
@@ -59,6 +62,12 @@ public static void ConvertAttachmentContent(this Activity activity)
5962
case GoogleAttachmentContentTypes.ConfirmationIntent:
6063
Convert<ConfirmationIntent>(attachment);
6164
break;
65+
case GoogleAttachmentContentTypes.NewSurfaceIntent:
66+
Convert<NewSurfaceIntent>(attachment);
67+
break;
68+
case GoogleAttachmentContentTypes.SigninIntent:
69+
Convert<SigninIntent>(attachment);
70+
break;
6271
}
6372
}
6473
}

libraries/Bot.Builder.Community.Adapters.Google.Core/Attachments/Extensions.cs

+4
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@ public static Attachment ToAttachment(this ResponseItem responseItem)
2222
return CreateAttachment(mediaResponse, GoogleAttachmentContentTypes.MediaResponse);
2323
case BasicCard basicCard:
2424
return CreateAttachment(basicCard, GoogleAttachmentContentTypes.BasicCard);
25+
case BrowsingCarousel browsingCarousel:
26+
return CreateAttachment(browsingCarousel, GoogleAttachmentContentTypes.BrowsingCarousel);
2527
default:
2628
return null;
2729
}
@@ -43,6 +45,8 @@ public static Attachment ToAttachment(this SystemIntent intent)
4345
return CreateAttachment(permissionsIntent, GoogleAttachmentContentTypes.PermissionsIntent);
4446
case PlaceLocationIntent placeLocationIntent:
4547
return CreateAttachment(placeLocationIntent, GoogleAttachmentContentTypes.PlaceLocationIntent);
48+
case NewSurfaceIntent newSurfaceIntent:
49+
return CreateAttachment(newSurfaceIntent, GoogleAttachmentContentTypes.NewSurfaceIntent);
4650
default:
4751
return null;
4852
}

libraries/Bot.Builder.Community.Adapters.Google.Core/Attachments/GoogleAttachmentContentTypes.cs

+2
Original file line numberDiff line numberDiff line change
@@ -16,5 +16,7 @@ public static class GoogleAttachmentContentTypes
1616
public const string CarouselIntent = "application/vhd.bfgoogle.carousel";
1717
public const string DateTimeIntent = "application/vhd.bfgoogle.datetime";
1818
public const string ConfirmationIntent = "application/vhd.bfgoogle.confirm";
19+
public const string NewSurfaceIntent = "application/vhd.bfgoogle.newsurface";
20+
public const string BrowsingCarousel = "application/vhd.bfgoogle.browsingcarousel";
1921
}
2022
}

libraries/Bot.Builder.Community.Adapters.Google.Core/Bot.Builder.Community.Adapters.Google.Core.csproj

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
<Project Sdk="Microsoft.NET.Sdk">
2+
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove('$(MSBuildThisFileDirectory)../', 'Bot.Builder.Community.sln'))\CommonTargets\library.shared.targets" />
23

34
<PropertyGroup>
45
<TargetFramework>netstandard2.0</TargetFramework>
@@ -7,7 +8,7 @@
78
<ItemGroup>
89
<PackageReference Include="JWT" Version="5.0.1" />
910
<PackageReference Include="Microsoft.AspNetCore.Http" Version="2.1.1" />
10-
<PackageReference Include="Microsoft.Bot.Schema" Version="4.9.2" />
11+
<PackageReference Include="Microsoft.Bot.Schema" Version="$(Bot_Builder_Version)" />
1112
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="2.1.0" />
1213
<PackageReference Include="Microsoft.MarkedNet" Version="1.0.13" />
1314
<PackageReference Include="Microsoft.Rest.ClientRuntime" Version="2.3.21" />

libraries/Bot.Builder.Community.Adapters.Google.Core/GoogleRequestMapperBase.cs

+16
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,18 @@ public ProcessHelperIntentAttachmentsResult ProcessHelperIntentAttachments(Activ
144144
};
145145
}
146146

147+
if (activity?.Attachments?.FirstOrDefault(a =>
148+
a.ContentType == GoogleAttachmentContentTypes.NewSurfaceIntent) != null)
149+
{
150+
return new ProcessHelperIntentAttachmentsResult()
151+
{
152+
Intent = ProcessSystemIntentAttachment<NewSurfaceIntent>(
153+
GoogleAttachmentContentTypes.NewSurfaceIntent,
154+
activity),
155+
AllowAdditionalInputPrompt = true
156+
};
157+
}
158+
147159
return new ProcessHelperIntentAttachmentsResult()
148160
{
149161
Intent = null
@@ -182,6 +194,10 @@ public List<ResponseItem> GetResponseItemsFromActivityAttachments(Activity activ
182194
if (mediaItem != null)
183195
responseItems.Add(mediaItem);
184196

197+
var browsingCarousel = ProcessResponseItemAttachment<BrowsingCarousel>(GoogleAttachmentContentTypes.BrowsingCarousel, activity);
198+
if (browsingCarousel != null)
199+
responseItems.Add(browsingCarousel);
200+
185201
return responseItems;
186202
}
187203

libraries/Bot.Builder.Community.Adapters.Google.Core/Helpers/GoogleCardFactory.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ public static BasicCard CreateBasicCard(string title, string subtitle, string fo
1818
Title = title,
1919
Subtitle = subtitle,
2020
FormattedText = formattedText,
21-
Buttons = buttons.ToArray(),
21+
Buttons = buttons?.ToArray(),
2222
Image = image,
2323
Display = displayOptions
2424
}

libraries/Bot.Builder.Community.Adapters.Google.Core/Model/Request/ConversationWebhookRequestSchema.cs

+6
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,16 @@ public class ConversationRequest
1010
public Surface Surface { get; set; }
1111
public Input[] Inputs { get; set; }
1212
public User User { get; set; }
13+
public Device Device { get; set; }
1314
public Conversation Conversation { get; set; }
1415
public AvailableSurface[] AvailableSurfaces { get; set; }
1516
}
1617

18+
public class Device
19+
{
20+
public Location Location { get; set; }
21+
}
22+
1723
public class Surface
1824
{
1925
public Capability[] Capabilities { get; set; }

0 commit comments

Comments
 (0)