refine update conv tags

This commit is contained in:
Jicheng Lu 2025-03-13 15:36:14 -05:00
parent 9a8f559785
commit f4cc8f41fa
3 changed files with 7 additions and 4 deletions

View file

@ -79,6 +79,6 @@ public abstract class ConversationHookBase : IConversationHook
public virtual Task OnNotificationGenerated(RoleDialogModel message)
=> Task.CompletedTask;
public Task OnUserDisconnected(Conversation conversation)
public virtual Task OnUserDisconnected(Conversation conversation)
=> Task.CompletedTask;
}

View file

@ -171,7 +171,8 @@ public partial class FileRepository
var json = File.ReadAllText(convFile);
var conv = JsonSerializer.Deserialize<Conversation>(json, _options);
var tags = conv.Tags.Concat(toAddTags).ToList();
var tags = conv.Tags ?? [];
tags = tags.Concat(toAddTags).Distinct().ToList();
conv.Tags = tags.Where(x => !toDeleteTags.Contains(x, StringComparer.OrdinalIgnoreCase)).ToList();
conv.UpdatedTime = DateTime.UtcNow;

View file

@ -142,10 +142,12 @@ public partial class MongoRepository
var conv = _dc.Conversations.Find(filter).FirstOrDefault();
if (conv == null) return false;
var tags = conv.Tags ?? [];
tags = tags.Concat(toAddTags).Distinct().ToList();
tags = tags.Where(x => !toDeleteTags.Contains(x, StringComparer.OrdinalIgnoreCase)).ToList();
var update = Builders<ConversationDocument>.Update
.Set(x => x.Tags, tags ?? new())
.Set(x => x.Tags, tags)
.Set(x => x.UpdatedTime, DateTime.UtcNow);
var res = _dc.Conversations.UpdateOne(filter, update);