Compare commits
2 Commits
554f73b550
...
a6dfe8712c
| Author | SHA1 | Date | |
|---|---|---|---|
| a6dfe8712c | |||
| 973b2f81ea |
@@ -428,9 +428,30 @@ public class ChatRoomController(
|
|||||||
ResourceId = chatRoomResourceId
|
ResourceId = chatRoomResourceId
|
||||||
});
|
});
|
||||||
|
|
||||||
db.ChatRooms.Remove(chatRoom);
|
await using var transaction = await db.Database.BeginTransactionAsync();
|
||||||
await db.SaveChangesAsync();
|
|
||||||
|
|
||||||
|
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
|
_ = als.CreateActionLogAsync(new CreateActionLogRequest
|
||||||
{
|
{
|
||||||
Action = "chatrooms.delete",
|
Action = "chatrooms.delete",
|
||||||
|
|||||||
@@ -361,6 +361,7 @@ public partial class ChatService(
|
|||||||
.DistinctBy(x => x.Id)
|
.DistinctBy(x => x.Id)
|
||||||
.ToList();
|
.ToList();
|
||||||
messageSenders = await crs.LoadMemberAccounts(messageSenders);
|
messageSenders = await crs.LoadMemberAccounts(messageSenders);
|
||||||
|
messageSenders = messageSenders.Where(x => x.Account is not null).ToList();
|
||||||
|
|
||||||
foreach (var message in messages)
|
foreach (var message in messages)
|
||||||
message.Value!.Sender = messageSenders.First(x => x.Id == message.Value.SenderId);
|
message.Value!.Sender = messageSenders.First(x => x.Id == message.Value.SenderId);
|
||||||
|
|||||||
Reference in New Issue
Block a user