Apply Expression equal function in LG library #5517
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #5508
Description
Firstly, let me explain the cause of the bug:
Here is a
SetProperty
action, and in the LG template, the customer uses :${$answer.score}
to achieve the score.Actually, In dialog memory manager, if the value is a
JObject
, it would usejobj.TryGetValue
to get the result.botbuilder-dotnet/libraries/Microsoft.Bot.Builder.Dialogs/ObjectPath.cs
Line 647 in fc5fb14
And, the result would be a long int(Int64) format data but not a Int32 format data. So, the result is actually
1L
, but not1
Another side, In the comparison of switch expression and case expression, the LG SDK treat they are different.
Original code:
botbuilder-dotnet/libraries/Microsoft.Bot.Builder.LanguageGeneration/Evaluator.cs
Line 284 in fc5fb14
Specific Changes
Unify the comparison mechanism of LG and expression. Apply the equal function of Expression in LG library.