From 46fdf455eee52415989fddcce445340ae8f0349e Mon Sep 17 00:00:00 2001 From: Jicheng Lu <103353@smsassist.com> Date: Tue, 16 Apr 2024 14:31:51 -0500 Subject: [PATCH] refine save state by args --- .../Services/ConversationStateService.cs | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/Infrastructure/BotSharp.Core/Conversations/Services/ConversationStateService.cs b/src/Infrastructure/BotSharp.Core/Conversations/Services/ConversationStateService.cs index e86f4610..ca731824 100644 --- a/src/Infrastructure/BotSharp.Core/Conversations/Services/ConversationStateService.cs +++ b/src/Infrastructure/BotSharp.Core/Conversations/Services/ConversationStateService.cs @@ -127,6 +127,8 @@ public class ConversationStateService : IConversationStateService, IDisposable _historyStates = _db.GetConversationStates(conversationId); var dialogs = _db.GetConversationDialogs(conversationId); var userDialogs = dialogs.Where(x => x.MetaData?.Role == AgentRole.User || x.MetaData?.Role == UserRole.Client) + .GroupBy(x => x.MetaData?.MessageId) + .Select(g => g.First()) .OrderBy(x => x.MetaData?.CreateTime) .ToList(); var curMsgIndex = userDialogs.FindIndex(x => !string.IsNullOrEmpty(curMsgId) && x.MetaData?.MessageId == curMsgId); @@ -342,9 +344,15 @@ public class ConversationStateService : IConversationStateService, IDisposable { foreach (JsonProperty property in root.EnumerateObject()) { - if (!string.IsNullOrEmpty(property.Value.ToString())) + var stateValue = property.Value.ToString(); + if (!string.IsNullOrEmpty(stateValue)) { - SetState(property.Name, property.Value, source: StateSource.Application); + if (bool.TryParse(stateValue, out _)) + { + stateValue = stateValue?.ToLower(); + } + + SetState(property.Name, stateValue, source: StateSource.Application); } } }