public async Task <IActionResult> Top() { var username = User.FindFirstValue(ClaimTypes.Name); if (username == null) { var noUserViewModel = new UserNovelListViewModel(); var topNovelNoUserList = await _context.NovelItem.OrderByDescending(a => a.Rating).ToListAsync <NovelItem>(); noUserViewModel.NovelInfoList = topNovelNoUserList; return(View(noUserViewModel)); } var user = await _context.User.FirstOrDefaultAsync(a => a.UserName == username); var userId = user.Id; var novelList = await _context.NovelItem.OrderByDescending(a => a.Rating).ToListAsync <NovelItem>(); var userStats = new List <NovelList>(); foreach (var novel in novelList) { var userScore = await _context.NovelList.FirstOrDefaultAsync(a => a.NovelItemId == novel.Id && a.UserId == userId); if (userScore == null) { var notOnList = new NovelList { UserRating = 0, UserProgress = 0, CompleteStatus = 0 }; userStats.Add(notOnList); } else { userStats.Add(userScore); } } var viewModel = new UserNovelListViewModel { User = user, NovelInfoList = novelList, UserNovelList = userStats }; return(View(viewModel)); }
public async Task <IActionResult> NovelList(string username) { if (username == null) { return(NotFound()); } var user = await _context.User.FirstOrDefaultAsync(a => a.UserName == username); if (user == null) { return(NotFound()); } else { var userId = user.Id; var novelList = await _context.NovelList.ToListAsync <NovelList>(); var userNovelList = new List <NovelItem>(); var userScores = new List <NovelList>(); foreach (var novel in novelList) { if (novel.UserId == userId) { var item = await _context.NovelItem.FirstOrDefaultAsync(a => a.Id == novel.NovelItemId); userNovelList.Add(item); userScores.Add(novel); } } var viewModel = new UserNovelListViewModel { User = user, NovelInfoList = userNovelList, UserNovelList = userScores }; return(View(viewModel)); } }