public async Task <TwitchChannel> AddChannelByName(string channelName) { _log.Debug("Adding Twitch channel by name {channelName}", channelName); var userEntity = await _twitchClient.GetUserByName(channelName); if (userEntity == null) { throw new AddChannelFailedException(AddChannelFailedReason.ChannelNotFound); } var channelEntity = await _twitchClient.GetChannelById(userEntity.Id); if (channelEntity == null) { throw new AddChannelFailedException(AddChannelFailedReason.ChannelNotFound); } var channel = new TwitchChannel { DisplayName = userEntity.DisplayName, Id = userEntity.Id, Followers = channelEntity.Followers }; if (!await _twitchChannelRepository.TryAddChannel(channel)) { _log.Debug("Adding channel {channelName} failed", channelName); throw new AddChannelFailedException(AddChannelFailedReason.Internal); } _log.Debug("Channel {channelName} added", channelName); return(channel); }