public async Task SaveAsync(SingleStreamerSettings teamsettings) { var objectToSave = new CosmosObject <SingleStreamerSettings> { Id = $"{_objectType}::{teamsettings.GuildId}", Item = teamsettings }; await _cosmosContainer.UpsertItemAsync(objectToSave, new PartitionKey(_objectType)); }
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); }
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"); } }