public async Task <IActionResult> List()
        {
            LoggedInTwitchUser twitchUser = null;

            ViewBag.UserIsMod = User.Identity.IsAuthenticated;

            if (User.Identity.IsAuthenticated)
            {
                var username = User.FindFirst(c => c.Type == TwitchAuthenticationConstants.Claims.DisplayName)
                               ?.Value;

                var userVips = await _vipApiClient.GetUserVipCount(new GetUserVipCountRequest
                {
                    Username = username
                });

                twitchUser = new LoggedInTwitchUser
                {
                    Username = username,
                    IsMod    = _modService.IsUserModerator(username),
                    Vips     = userVips?.Vips ?? 0
                };

                ViewBag.UserIsMod = twitchUser?.IsMod ?? false;
                ViewBag.Username  = twitchUser?.Username ?? string.Empty;
            }

            var allCurrentSongRequests = await _playlistApiClient.GetAllCurrentSongRequests();

            var playlistModel = new PlaylistViewModel
            {
                TwitchUser = twitchUser
            };

            if (allCurrentSongRequests != null)
            {
                playlistModel.CurrentSong = allCurrentSongRequests.CurrentSong;
                playlistModel.RegularList = allCurrentSongRequests.RegularList
                                            .Where(r => r.songRequestId != allCurrentSongRequests.CurrentSong.songRequestId).ToArray();
                playlistModel.VipList = allCurrentSongRequests.VipList
                                        .Where(r => r.songRequestId != allCurrentSongRequests.CurrentSong.songRequestId).ToArray();
            }

            ViewBag.UserHasVip = User.Identity.IsAuthenticated && (_vipApiClient.DoesUserHaveVip(
                                                                       new DoesUserHaveVipRequestModel
            {
                Username = User.Identity.Name.ToLower()
            })?.Result?.HasVip ?? false);

            var playlistTask = await _playlistApiClient.IsPlaylistOpen();

            ViewBag.IsPlaylistOpen = playlistTask == PlaylistState.Open;

            return(View(playlistModel));
        }
Ejemplo n.º 2
0
        public async void Process(TwitchClient client, string username, string commandText, bool isMod, JoinedChannel joinedChannel)
        {
            var request = await _playlistApiClient.IsPlaylistOpen();

            if (request == PlaylistState.Open)
            {
                client.SendMessage(joinedChannel,
                                   $"To request a song just use: !request <SongArtist> - <SongTitle> - (Guitar or Bass)");
            }
        }