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);
        }