Восстановление очистки админки
This commit is contained in:
@@ -3,7 +3,7 @@ using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using Knot.Contracts.Messaging.Abstractions;
|
||||
using Knot.Contracts.Messaging.Application.Abstractions;
|
||||
using Knot.Contracts.Messaging.Domain;
|
||||
using MongoDB.Driver;
|
||||
|
||||
@@ -25,7 +25,23 @@ public sealed class MessageQueryService : IMessageQueryService
|
||||
m.Id,
|
||||
m.ChatId,
|
||||
m.State.HasFlag(MessageState.IsDeleted),
|
||||
m is MediaMessage mm && mm.Media.Any() ? mm.Media.First().Url : null
|
||||
m is MediaMessage mm && mm.Media.Any() ? mm.Media.First().Url : null,
|
||||
m is MediaMessage mm2 && mm2.Media.Any() ? mm2.Media.Select(media => new Contracts.Messaging.Application.Abstractions.MediaInfo(media.Url)).ToList() : null
|
||||
)).ToList();
|
||||
}
|
||||
|
||||
public async Task<List<MessageInfo>> GetOrphanedMessagesAsync(HashSet<Guid> activeChatIds, CancellationToken cancellationToken)
|
||||
{
|
||||
var builder = Builders<Message>.Filter;
|
||||
var inFilter = builder.In(m => m.ChatId, activeChatIds);
|
||||
var filter = builder.Not(inFilter);
|
||||
var messages = await _messages.Find(filter).ToListAsync(cancellationToken);
|
||||
return messages.Select(m => new MessageInfo(
|
||||
m.Id,
|
||||
m.ChatId,
|
||||
m.State.HasFlag(MessageState.IsDeleted),
|
||||
m is MediaMessage mm && mm.Media.Any() ? mm.Media.First().Url : null,
|
||||
m is MediaMessage mm2 && mm2.Media.Any() ? mm2.Media.Select(media => new Contracts.Messaging.Application.Abstractions.MediaInfo(media.Url)).ToList() : null
|
||||
)).ToList();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user