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