🐛 Fix message attachment did not marked

This commit is contained in:
2025-05-18 12:53:32 +08:00
parent b40282e43a
commit 4e794ceb9b
3 changed files with 11 additions and 2 deletions

View File

@ -1,11 +1,12 @@
using DysonNetwork.Sphere.Account;
using DysonNetwork.Sphere.Connection;
using DysonNetwork.Sphere.Storage;
using Microsoft.EntityFrameworkCore;
using NodaTime;
namespace DysonNetwork.Sphere.Chat;
public class ChatService(AppDatabase db, IServiceScopeFactory scopeFactory)
public class ChatService(AppDatabase db, FileService fs, IServiceScopeFactory scopeFactory)
{
public async Task<Message> SendMessageAsync(Message message, ChatMember sender, ChatRoom room)
{
@ -16,6 +17,9 @@ public class ChatService(AppDatabase db, IServiceScopeFactory scopeFactory)
db.ChatMessages.Add(message);
await db.SaveChangesAsync();
var files = message.Attachments.Distinct().ToList();
if (files.Count != 0) await fs.MarkUsageRangeAsync(files, 1);
// Then start the delivery process
// Using ConfigureAwait(false) is correct here since we don't need context to flow
_ = Task.Run(() => DeliverMessageAsync(message, sender, room))