private Task CheckStreamerStatus() { LiteCollection <Streamer> streamers = null; lock (dbLock) { streamers = database.GetCollection <Streamer>("streamers"); } foreach (var streamer in streamers.FindAll()) { var info = twitch.TwitchQuery(Twitch.HelixStrings.Streams, streamer.Name.ToLower()); if (info == null) { if (streamer.IsStreaming) { streamer.IsStreaming = false; lock (dbLock) { streamers.Update(streamer); } } continue; } var gamePlayed = twitch.TwitchQuery(Twitch.HelixStrings.Games, (string)info.Result["game_id"]).Result; streamer.Game = gamePlayed == null ? "" : (string)gamePlayed["name"]; if (!streamer.IsStreaming) { streamer.IsStreaming = true; } streamer.StreamTitle = (string)info.Result["title"]; if (streamer.MessageId == null) { var user = guild.GetUser(streamer.Id); var content = string.Format(Twitch.DefaultStreamMessage, $"**{(user as IGuildUser)?.Nickname}**", streamer.StreamUrl); var embed = CreateMessageEmbed(streamer).Result; var liveChannel = guild.GetTextChannel(Program.ChannelId); var msg = liveChannel.SendMessageAsync(content, embed: embed).Result; streamer.MessageId = (msg as IUserMessage).Id; Console.Out.WriteLineAsync($"Set streamer {streamer.Name} to msgId {streamer.MessageId}"); } lock (dbLock) { streamers.Update(streamer); } } return(Task.CompletedTask); }