Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove use of dynamic from Storage APIs #425

Merged
merged 4 commits into from
Apr 14, 2018

Conversation

drub0y
Copy link
Contributor

@drub0y drub0y commented Apr 13, 2018

  • Removes: FlexObject, StoreItem, StoreItem
  • Updated all storage providers to take/return
    IEnumerable<KeyValue<string, object>> instead of StoreItems
  • Updated all tests and samples to reflect these changes (passing)

 * Removes: `FlexObject`, `StoreItem`, `StoreItem`
 * Updated all storage providers to take/return
`IEnumerable<KeyValue<string, object>>` instead of `StoreItems`
 * Updated all tests and samples to reflect these changes (passing)
@drub0y drub0y requested a review from cleemullins April 13, 2018 23:25
@cleemullins
Copy link
Contributor

Note: Test failures related to the Transcript tests are fixed in PR #426. The tests work on my machine after that PR.

@cleemullins cleemullins added this to the BUILD 2018 milestone Apr 14, 2018
@cleemullins
Copy link
Contributor

@tomlm, please take a look. Let's get this in as part of the M3 code.

@cleemullins cleemullins requested a review from tomlm April 14, 2018 00:14
Copy link
Contributor

@tomlm tomlm left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

:shipit:

@cleemullins
Copy link
Contributor

@tomlm Crap. Build is failing. I'll look this evening.

@cleemullins
Copy link
Contributor

John & I have been banging on this for a bit. We've found 1 "for sure" bug in the new MemoryStore, in that it's not preserving the typnames of collections. The 2nd bug is that the STack used in DialogSet appears to be reversed after it's round tripped. John is working on fixing.

Note: The changes to the Memory Store to actually serialize to JSON - giving it a behavior more similar to the File / Blob / Table stores is very useful. It means the failure modes are (hopefullly) the same, and the Memory store isn't just different.

John is will working on this, while I need to sleep.. (1AM).

@cleemullins
Copy link
Contributor

The right setting for the JsonSerializer for the collection preservation is:
private static readonly JsonSerializer StateJsonSerializer = new JsonSerializer() { TypeNameHandling = TypeNameHandling.All };

Note: the File / Table stores already had this.

@cleemullins
Copy link
Contributor

Turns out a "Stack" serialized via JSON.Net, gets reversed. Known problem with Netwonsoft, with various workarounds. Oiy.

https://stackoverflow.com/questions/39137123/jsonconvert-deserializer-indexing-issues

@cleemullins
Copy link
Contributor

@johnataylor johnataylor merged commit 9270c94 into master Apr 14, 2018
@johnataylor johnataylor deleted the drmarsh/remove-dynamics-from-state branch April 14, 2018 08:53
ShYuPe pushed a commit to ShYuPe/botbuilder-dotnet that referenced this pull request Aug 25, 2020
ShYuPe pushed a commit to ShYuPe/botbuilder-dotnet that referenced this pull request Aug 25, 2020
* initial commit for Teams work

* initial commit for Teams

* adding teams activity handler, team info, and teams channel account classes

* adding conversation update scenario

* fixing linting issues

* updating classes to use standard attrs

* cleaning up PR feedback

* adding line

* adding another blank line

* adding mentions bot and fixing bug for resource response IDs

* Threading helper workaround

* Corrected case of "teams" folder name in core.  Corrected __init__.py in schema so TeamsChannelAccount was defined.

* adding mention bot

updating mention bot

cleaning up linter

removing readme, removing self from on_error

* resolving merge conflict

* adding mention bot

cleaning up linter

* updating linting

* adding mention bot

updating mention bot

cleaning up linter

removing readme, removing self from on_error

* resolving merge conflict

* adding mention bot

cleaning up linter

* updating linting

* Added 43.complex-dialog

* Pinned dependencies in all libraries

* adding activity update and delete

* adding list for activities

* cleaning up config

* Pinned dependencies in libraries (missed some setup.py)

* modify echo to work out of the box w/ ARM template

* Added 47.inspection (microsoft#381)

* Added 47.inspection, corrected README in 45.state-management

* Changed the on_error function to be unbound for consistency.

* ChoiceFactory.for_channel was erroneously returning a List instead of an Activity (microsoft#383)

* Refactored to unbound on_error methods when accessing outer app.py va… (microsoft#385)

* Refactored to unbound on_error methods when accessing outer app.py variables.

* Removed unused imports

* Added 16.proactive-messages (microsoft#413)

* Added 19.custom-dialogs (microsoft#411)

* Fix ChoicePrompt ListStyle.none when set via PromptOptions (microsoft#373)

* fix ChoicePrompt none style when set via options

* black compat

* Added 18.bot-authentication (microsoft#419)

* Added 17.multilingual-bot

* Added 23.facebook-events sample

* 23.facebook-events: on_error is now an unbound function

* Partial 15.handling-attachments

* Removing unnecesary encoding

* Added 15.handling-attachments

* 17.multilingual-bot suggested corrections

* 15.handling-attachments suggested corrections

* pylint and black, suggested corrections.

* pylint and black changes.  No logic changes. (microsoft#427)

* Fixes microsoft#425: Using incorrect BotState (microsoft#426)

* Added send_activities and updated the logic

* pylint: Added send_activities and updated the logic

* pylint: Added send_activities and updated the logic

* black formatter: Added send_activities and updated the logic

* Added 11.qnamaker (microsoft#429)

* Added 40.timex resolution (microsoft#430)

* Unfinished push until recognizers-text is updated.

* Added 40.timex-resolution

* Added 42.scaleout (microsoft#435)

* Pinned pytest version (microsoft#438)

* updating linting

* fixing linting

* initial commit for Teams work

* initial commit for Teams

* adding teams activity handler, team info, and teams channel account classes

* adding conversation update scenario

* fixing linting issues

* updating classes to use standard attrs

* cleaning up PR feedback

* adding line

* adding another blank line

* Corrected case of "teams" folder name in core.  Corrected __init__.py in schema so TeamsChannelAccount was defined.

* removing extension file

* resovling conflict

* more merge conflict resolution

* fixing linting

* fixing conflicts

* adding updated teams activity handler

* updating None check

* updating activity handler and fixing spacing issue

* updating activity handler and tests

* updating teams activity handler

* removing constant

* adding tests and removing constant

* moving scenarios to root

* updating attr check, using .seralize(), removing return

* rerunnign black

* updating names

* updating loop to downcast

* member not memeber

* adding s
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants