private async Task TrackStream(ITextChannel channel, string username, FollowedStream.FollowedStreamType type) { username = username.ToLowerInvariant().Trim(); var fs = new FollowedStream { GuildId = channel.Guild.Id, ChannelId = channel.Id, Username = username, Type = type, }; StreamStatus status; try { status = await GetStreamStatus(fs).ConfigureAwait(false); } catch { await channel.SendErrorAsync("Stream probably doesn't exist.").ConfigureAwait(false); return; } using (var uow = DbHandler.UnitOfWork()) { uow.GuildConfigs.For(channel.Guild.Id, set => set.Include(gc => gc.FollowedStreams)) .FollowedStreams .Add(fs); await uow.CompleteAsync().ConfigureAwait(false); } await channel.EmbedAsync(fs.GetEmbed(status).Build(), $"🆗 I will notify this channel when status changes.").ConfigureAwait(false); }
private async Task TrackStream(ITextChannel channel, string username, FollowedStream.FollowedStreamType type) { username = username.ToLowerInvariant().Trim(); var fs = new FollowedStream { GuildId = (long)channel.Guild.Id, ChannelId = (long)channel.Id, Username = username, Type = type, }; StreamStatus status; try { status = await GetStreamStatus(fs).ConfigureAwait(false); } catch { await ReplyErrorLocalized("stream_not_exist").ConfigureAwait(false); return; } using (var uow = DbHandler.UnitOfWork()) { uow.GuildConfigs.For(channel.Guild.Id, set => set.Include(gc => gc.FollowedStreams)) .FollowedStreams .Add(fs); await uow.CompleteAsync().ConfigureAwait(false); } await channel.EmbedAsync(fs.GetEmbed(status, Context.Guild.Id), GetText("stream_tracked")).ConfigureAwait(false); }