diff --git a/src/Infrastructure/BotSharp.Abstraction/Repositories/Filters/ConversationFilter.cs b/src/Infrastructure/BotSharp.Abstraction/Repositories/Filters/ConversationFilter.cs index b94876c3e..e274adb78 100644 --- a/src/Infrastructure/BotSharp.Abstraction/Repositories/Filters/ConversationFilter.cs +++ b/src/Infrastructure/BotSharp.Abstraction/Repositories/Filters/ConversationFilter.cs @@ -16,6 +16,7 @@ public class ConversationFilter public string? ChannelId { get; set; } public string? UserId { get; set; } public DateTime? StartTime { get; set; } + public DateTime? EndTime { get; set; } /// /// Agent task id diff --git a/src/Plugins/BotSharp.Plugin.MongoStorage/Repository/MongoRepository.Conversation.cs b/src/Plugins/BotSharp.Plugin.MongoStorage/Repository/MongoRepository.Conversation.cs index d0da6fbf9..fb424f02b 100644 --- a/src/Plugins/BotSharp.Plugin.MongoStorage/Repository/MongoRepository.Conversation.cs +++ b/src/Plugins/BotSharp.Plugin.MongoStorage/Repository/MongoRepository.Conversation.cs @@ -393,6 +393,10 @@ public PagedItems GetConversations(ConversationFilter filter) { convFilters.Add(convBuilder.Gte(x => x.CreatedTime, filter.StartTime.Value)); } + if (filter?.EndTime != null) + { + convFilters.Add(convBuilder.Lte(x => x.CreatedTime, filter.EndTime.Value)); + } if (filter?.Tags != null && filter.Tags.Any()) { convFilters.Add(convBuilder.AnyIn(x => x.Tags, filter.Tags));