public async Task <IActionResult> Top() { var username = User.FindFirstValue(ClaimTypes.Name); if (username == null) { var noUserViewModel = new UserMangaListViewModel(); var topNovelNoUserList = await _context.MangaItem.OrderByDescending(a => a.Rating).ToListAsync <MangaItem>(); noUserViewModel.MangaInfoList = topNovelNoUserList; return(View(noUserViewModel)); } var user = await _context.User.FirstOrDefaultAsync(a => a.UserName == username); var userId = user.Id; var mangaList = await _context.MangaItem.OrderByDescending(a => a.Rating).ToListAsync <MangaItem>(); var userStats = new List <MangaList>(); foreach (var manga in mangaList) { var userScore = await _context.MangaList.FirstOrDefaultAsync(a => a.MangaItemId == manga.Id && a.UserId == userId); if (userScore == null) { var notOnList = new MangaList { UserRating = 0, UserProgress = 0, CompleteStatus = 0 }; userStats.Add(notOnList); } else { userStats.Add(userScore); } } var viewModel = new UserMangaListViewModel { User = user, MangaInfoList = mangaList, UserMangaList = userStats }; return(View(viewModel)); }
public async Task <IActionResult> MangaList(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 mangaList = await _context.MangaList.ToListAsync <MangaList>(); var userMangaList = new List <MangaItem>(); var userScores = new List <MangaList>(); foreach (var manga in mangaList) { if (manga.UserId == userId) { var item = await _context.MangaItem.FirstOrDefaultAsync(a => a.Id == manga.MangaItemId); userMangaList.Add(item); userScores.Add(manga); } } var viewModel = new UserMangaListViewModel { User = user, MangaInfoList = userMangaList, UserMangaList = userScores }; return(View(viewModel)); } }