Only add new messages.

This commit is contained in:
Filip Strajnar 2024-06-16 01:26:20 +02:00
parent 0ca1d86126
commit b4f0ce3de1

View file

@ -65,14 +65,18 @@ int finalCode = await CommandLine
if (messages is null) if (messages is null)
return 2; return 2;
await db.AddRangeAsync( IEnumerable<Message> newMessages = messages.Select(message => new Message
messages.Select(message => new Message {
{ ChannelId = message.ChannelId,
ChannelId = message.ChannelId, MessageId = message.Id,
MessageId = message.Id, Content = message.Content
Content = message.Content });
})
); foreach (var newMessage in newMessages)
{
if (!db.Messages.Any(message => message.MessageId == newMessage.MessageId))
await db.AddAsync(newMessage);
}
await db.SaveChangesAsync(); await db.SaveChangesAsync();
Console.WriteLine($"Written {messages.Length} messages."); Console.WriteLine($"Written {messages.Length} messages.");
@ -96,17 +100,21 @@ int finalCode = await CommandLine
totalMessages = response.TotalMessages; totalMessages = response.TotalMessages;
await db.AddRangeAsync( IEnumerable<Message> newMessages = response.Messages.SelectMany(message =>
response.Messages.SelectMany(message => message.Select(messagePart => new Message
message.Select(messagePart => new Message {
{ ChannelId = messagePart.ChannelId,
ChannelId = messagePart.ChannelId, MessageId = messagePart.Id,
MessageId = messagePart.Id, Content = messagePart.Content
Content = messagePart.Content })
})
)
); );
foreach (var newMessage in newMessages)
{
if (!db.Messages.Any(message => message.MessageId == newMessage.MessageId))
await db.AddAsync(newMessage);
}
await db.SaveChangesAsync(); await db.SaveChangesAsync();
Console.WriteLine($"Written {response.Messages.Length} messages."); Console.WriteLine($"Written {response.Messages.Length} messages.");
offset += response.Messages.Count(); offset += response.Messages.Count();