Skip to content

Commit 1d0a7e8

Browse files
authored
Merge pull request #472 from yileicn/master
optimize UpdateBreakPoint
2 parents e2b99f1 + ad7b3a4 commit 1d0a7e8

File tree

2 files changed

+10
-3
lines changed

2 files changed

+10
-3
lines changed

src/Infrastructure/BotSharp.Abstraction/Conversations/IConversationService.cs

+2-1
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ Task<bool> SendMessage(string agentId,
5151
/// </summary>
5252
/// <param name="resetStates">Whether to reset all states</param>
5353
/// <param name="reason">Append user init words</param>
54+
/// <param name="excludedStates"></param>
5455
/// <returns></returns>
55-
Task UpdateBreakpoint(bool resetStates = false, string? reason = null);
56+
Task UpdateBreakpoint(bool resetStates = false, string? reason = null, params string[] excludedStates);
5657
}

src/Infrastructure/BotSharp.Core/Conversations/Services/ConversationService.UpdateBreakpoint.cs

+8-2
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ namespace BotSharp.Core.Conversations.Services;
44

55
public partial class ConversationService : IConversationService
66
{
7-
public async Task UpdateBreakpoint(bool resetStates = false, string? reason = null)
7+
public async Task UpdateBreakpoint(bool resetStates = false, string? reason = null, params string[] excludedStates)
88
{
99
var db = _services.GetRequiredService<IBotSharpRepository>();
1010
var routingCtx = _services.GetRequiredService<IRoutingContext>();
@@ -22,7 +22,13 @@ public async Task UpdateBreakpoint(bool resetStates = false, string? reason = nu
2222
{
2323
var states = _services.GetRequiredService<IConversationStateService>();
2424
// keep language state
25-
states.CleanStates(StateConst.LANGUAGE);
25+
if (excludedStates == null) excludedStates = new string[] { };
26+
if (!excludedStates.Contains(StateConst.LANGUAGE))
27+
{
28+
excludedStates = excludedStates.Append(StateConst.LANGUAGE).ToArray();
29+
}
30+
31+
states.CleanStates(excludedStates);
2632
}
2733

2834
var hooks = _services.GetServices<IConversationHook>()

0 commit comments

Comments
 (0)