public async Task SaveAsync(SingleStreamerSettings teamsettings)
        {
            var objectToSave = new CosmosObject <SingleStreamerSettings>
            {
                Id   = $"{_objectType}::{teamsettings.GuildId}",
                Item = teamsettings
            };

            await _cosmosContainer.UpsertItemAsync(objectToSave, new PartitionKey(_objectType));
        }
Пример #2
0
        private async Task <ulong> CreateLiveMessageAsync(ulong guildId, ulong channelId, SingleStreamerSettings singleStreamerSettings)
        {
            try
            {
                foreach (var instance in _botDiscordSocketClients)
                {
                    if (instance.Guilds.Any(x => x.Id == guildId))
                    {
                        SocketTextChannel currentChannel = instance.GetChannel(channelId) as SocketTextChannel;
                        var message = await currentChannel.SendMessageAsync($"{singleStreamerSettings.DisplayName} is now offline, you missed it!");

                        return(message.Id);
                    }
                }
            }
            catch (Exception ex)
            {
                _logger.LogError(ex, "SingleStreamerService.CreateLiveMessageAsync");
            }
            return(0);
        }
Пример #3
0
        private async Task UpdateLiveMessageAsync(ulong guildId, ulong channelId, ulong messageId, SingleStreamerSettings settings, bool isLive)
        {
            try
            {
                foreach (var instance in _botDiscordSocketClients)
                {
                    if (instance.Guilds.Any(x => x.Id == guildId))
                    {
                        SocketTextChannel currentChannel = instance.GetChannel(channelId) as SocketTextChannel;

                        var currentMessage = (RestUserMessage)await currentChannel.GetMessageAsync(messageId);

                        if (currentMessage != null)
                        {
                            if (currentMessage.Content.StartsWith("@everyone") && !isLive)
                            {
                                await currentMessage.DeleteAsync();

                                var newMessage = await currentChannel.SendMessageAsync($"{settings.DisplayName} is now offline, you missed it!");

                                _channelMainMessages[guildId].Id = newMessage.Id;
                            }

                            if (!currentMessage.Content.StartsWith("@everyone") && isLive)
                            {
                                await currentMessage.DeleteAsync();

                                var newMessage = await currentChannel.SendMessageAsync($"@everyone {settings.DisplayName} is now Live.... ");

                                _channelMainMessages[guildId].Id = newMessage.Id;
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                _logger.LogError(ex, "SingleStreamerService.UpdateLiveMessageAsync");
            }
        }