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