Skip to content

Commit d1a3ded

Browse files
authored
Merge pull request #1115 from iceljc/features/add-optional-migrate-agents
add option agents
2 parents bf65265 + 09945a0 commit d1a3ded

File tree

4 files changed

+22
-6
lines changed

4 files changed

+22
-6
lines changed

src/Infrastructure/BotSharp.Abstraction/Agents/IAgentService.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ namespace BotSharp.Abstraction.Agents;
1010
public interface IAgentService
1111
{
1212
Task<Agent> CreateAgent(Agent agent);
13-
Task<string> RefreshAgents();
13+
Task<string> RefreshAgents(IEnumerable<string>? agentIds = null);
1414
Task<PagedItems<Agent>> GetAgents(AgentFilter filter);
1515
Task<List<IdName>> GetAgentOptions(List<string>? agentIds = null, bool byName = false);
1616
Task<IEnumerable<AgentUtility>> GetAgentUtilityOptions();

src/Infrastructure/BotSharp.Core/Agents/Services/AgentService.RefreshAgents.cs

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ namespace BotSharp.Core.Agents.Services;
66

77
public partial class AgentService
88
{
9-
public async Task<string> RefreshAgents()
9+
public async Task<string> RefreshAgents(IEnumerable<string>? agentIds = null)
1010
{
1111
string refreshResult;
1212
var dbSettings = _services.GetRequiredService<BotSharpDatabaseSettings>();
@@ -28,7 +28,13 @@ public async Task<string> RefreshAgents()
2828
}
2929

3030
var refreshedAgents = new List<string>();
31-
foreach (var dir in Directory.GetDirectories(agentDir))
31+
var dirs = Directory.GetDirectories(agentDir);
32+
if (!agentIds.IsNullOrEmpty())
33+
{
34+
dirs = dirs.Where(x => agentIds.Contains(x.Split(Path.DirectorySeparatorChar).Last())).ToArray();
35+
}
36+
37+
foreach (var dir in dirs)
3238
{
3339
try
3440
{
@@ -78,7 +84,7 @@ public async Task<string> RefreshAgents()
7884
}
7985
else
8086
{
81-
refreshResult = "No agent gets refreshed!";
87+
refreshResult = "No agent gets migrated!";
8288
}
8389

8490
_logger.LogInformation(refreshResult);

src/Infrastructure/BotSharp.OpenAPI/Controllers/AgentController.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -111,9 +111,9 @@ public async Task<AgentViewModel> CreateAgent(AgentCreationModel agent)
111111

112112
[BotSharpAuth]
113113
[HttpPost("/refresh-agents")]
114-
public async Task<string> RefreshAgents()
114+
public async Task<string> RefreshAgents([FromBody] AgentMigrationModel request)
115115
{
116-
return await _agentService.RefreshAgents();
116+
return await _agentService.RefreshAgents(request?.AgentIds);
117117
}
118118

119119
[HttpPut("/agent/file/{agentId}")]
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
using System.Text.Json.Serialization;
2+
3+
namespace BotSharp.OpenAPI.ViewModels.Agents;
4+
5+
public class AgentMigrationModel
6+
{
7+
[JsonPropertyName("agent_ids")]
8+
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
9+
public IEnumerable<string>? AgentIds { get; set; }
10+
}

0 commit comments

Comments
 (0)