Exemplo n.º 1
0
        public async Task <List <ChannelMessage> > SendMessages(string platform, List <BroadcastMessage> messages)
        {
            var channelMessages = new List <ChannelMessage>();

            foreach (var message in messages)
            {
                var chat = await _discordService.GetMessageChannel(message.GuildId, message.ChannelId);

                if (chat != null)
                {
                    try
                    {
                        ChannelMessage channelMessage = new ChannelMessage();
                        channelMessage.ChannelId     = message.ChannelId;
                        channelMessage.GuildId       = message.GuildId;
                        channelMessage.DeleteOffline = message.DeleteOffline;

                        if (message.Embed != null)
                        {
                            RequestOptions options = new RequestOptions();
                            options.RetryMode = RetryMode.AlwaysRetry;
                            var msg = await chat.SendMessageAsync(message.Message, false, message.Embed, options);

                            if (msg != null || msg.Id != 0)
                            {
                                channelMessage.MessageId = msg.Id;
                            }
                        }
                        else
                        {
                            var msg = await chat.SendMessageAsync(message.Message);

                            if (msg != null || msg.Id != 0)
                            {
                                channelMessage.MessageId = msg.Id;
                            }
                        }

                        channelMessages.Add(channelMessage);

                        if (platform.Equals(Constants.Mixer))
                        {
                            await _statisticsManager.AddToBeamAlertCount();

                            await _alertManager.LogAlert(Constants.Mixer, message.GuildId);
                        }
                        else if (platform.Equals(Constants.Smashcast))
                        {
                            await _statisticsManager.AddToHitboxAlertCount();

                            await _alertManager.LogAlert(Constants.Smashcast, message.GuildId);
                        }
                        else if (platform.Equals(Constants.Twitch))
                        {
                            await _statisticsManager.AddToTwitchAlertCount();

                            await _alertManager.LogAlert(Constants.Twitch, message.GuildId);
                        }
                        else if (platform.Equals(Constants.YouTubeGaming))
                        {
                            await _statisticsManager.AddToYouTubeAlertCount();

                            await _alertManager.LogAlert(Constants.YouTubeGaming, message.GuildId);
                        }
                        else if (platform.Equals(Constants.Picarto))
                        {
                            await _statisticsManager.AddToPicartoAlertCount();

                            await _alertManager.LogAlert(Constants.Picarto, message.GuildId);
                        }
                        else if (platform.Equals(Constants.VidMe))
                        {
                            await _statisticsManager.AddToVidMeAlertCount();

                            await _alertManager.LogAlert(Constants.VidMe, message.GuildId);
                        }
                        else if (message.Platform.Equals(Constants.YouTube))
                        {
                            await _statisticsManager.AddToYouTubeAlertCount();

                            await _alertManager.LogAlert(Constants.YouTube, message.GuildId);
                        }
                        else if (message.Platform.Equals(Constants.Mobcrush))
                        {
                            await _statisticsManager.AddToMobcrushAlertCount();

                            await _alertManager.LogAlert(Constants.Mobcrush, message.GuildId);
                        }
                    }
                    catch (Exception ex)
                    {
                        Logging.LogError("Send Message Error: " + ex.Message + " in server " + message.GuildId);
                    }
                }
            }

            return(channelMessages);
        }