Esempio n. 1
0
        private async Task Client_OnMessageReceived(MessageReceivedEvent e)
        {
            if (e.Deleted)
            {
                await deletedMessagesRepository.Insert(e.Channel, e.DisplayName, e.DeletedBy, e.Message, datetimeProvider.UtcNow).ConfigureAwait(false);

                var existingChatMessage = await chatRepository.GetMessageFromTwitchMessageId(e.TwitchMessageId).ConfigureAwait(false);

                if (existingChatMessage == null)
                {
                    var chatMessage = new ChatMessage(
                        datetimeProvider.UtcNow,
                        e.TwitchMessageId,
                        e.DisplayName,
                        e.Channel,
                        e.Message,
                        e.AutoModded,
                        e.Deleted);

                    await chatRepository.SaveChatMessage(chatMessage).ConfigureAwait(false);

                    return;
                }

                existingChatMessage.MarkDeleted();

                await chatRepository.SaveChatMessage(existingChatMessage).ConfigureAwait(false);
            }
            else
            {
                var chatMessage = new ChatMessage(
                    datetimeProvider.UtcNow,
                    e.TwitchMessageId,
                    e.DisplayName,
                    e.Channel,
                    e.Message,
                    e.AutoModded,
                    e.Deleted);

                await chatRepository.SaveChatMessage(chatMessage).ConfigureAwait(false);
            }
        }