Compare commits

...

2 Commits

2 changed files with 24 additions and 2 deletions

View File

@@ -428,9 +428,30 @@ public class ChatRoomController(
ResourceId = chatRoomResourceId
});
db.ChatRooms.Remove(chatRoom);
await db.SaveChangesAsync();
await using var transaction = await db.Database.BeginTransactionAsync();
try
{
var now = SystemClock.Instance.GetCurrentInstant();
await db.ChatMessages
.Where(m => m.ChatRoomId == id)
.ExecuteUpdateAsync(s => s.SetProperty(s => s.DeletedAt, now));
await db.ChatMembers
.Where(m => m.ChatRoomId == id)
.ExecuteUpdateAsync(s => s.SetProperty(s => s.DeletedAt, now));
await db.SaveChangesAsync();
db.ChatRooms.Remove(chatRoom);
await db.SaveChangesAsync();
await transaction.CommitAsync();
}
catch (Exception)
{
await transaction.RollbackAsync();
throw;
}
_ = als.CreateActionLogAsync(new CreateActionLogRequest
{
Action = "chatrooms.delete",

View File

@@ -361,6 +361,7 @@ public partial class ChatService(
.DistinctBy(x => x.Id)
.ToList();
messageSenders = await crs.LoadMemberAccounts(messageSenders);
messageSenders = messageSenders.Where(x => x.Account is not null).ToList();
foreach (var message in messages)
message.Value!.Sender = messageSenders.First(x => x.Id == message.Value.SenderId);