public async Task <IActionResult> Index() { var quotes = await _quoteApiClient.GetQuotes(); var isMod = false; if (User.Identity.IsAuthenticated) { isMod = _modService.IsUserModerator(User.Identity.Name); } var userSubmittedQuotes = quotes.Quotes.Select(q => new UserSubmittedQuote { QuoteId = q.QuoteId, QuoteText = q.QuoteText, CreatedBy = q.CreatedBy, Disabled = q.Disabled, EditedBy = q.LastEditedBy, EditedAt = q.EditedAt, ShowEditOrDelete = isMod || (User.Identity.IsAuthenticated && q.CreatedBy.ToLower() == User.Identity.Name.ToLower()) }).ToList(); var quoteViewModels = new QuoteViewModel { UserSubmittedQuotes = userSubmittedQuotes, IsMod = isMod }; return(View(quoteViewModels)); }
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 Task <IViewComponentResult> InvokeAsync() { var isUserMod = (HttpContext?.User?.Identity?.IsAuthenticated ?? false) && _modService.IsUserModerator(User.Identity.Name); // Get the current page so we can redirect the user back here after login/logout // TODO: Consider if the page we are returning to will attempt to auto login or anything similar var currentPage = HttpContext.Request.Path; return(View(new NavigationViewModel { IsBroadcasterOnline = true, LoginLogoutRedirect = currentPage, UserIsMod = isUserMod })); }