public static UserAnimeListViewModel GetViewModel(this UserAnimeList useranime) { var UserAnimeListVM = new UserAnimeListViewModel() { Id = useranime.Id, Status = useranime.Status }; return(UserAnimeListVM); }
public async Task <IActionResult> Top() { var username = User.FindFirstValue(ClaimTypes.Name); if (username == null) { var noUserViewModel = new UserAnimeListViewModel(); var topAnimeNoUserList = await _context.AnimeItem.OrderByDescending(a => a.Rating).ToListAsync <AnimeItem>(); noUserViewModel.AnimeInfoList = topAnimeNoUserList; return(View(noUserViewModel)); } var user = await _context.User.FirstOrDefaultAsync(a => a.UserName == username); var userId = user.Id; var animeList = await _context.AnimeItem.OrderByDescending(a => a.Rating).ToListAsync <AnimeItem>(); var userStats = new List <AnimeList>(); foreach (var anime in animeList) { var userScore = await _context.AnimeList.FirstOrDefaultAsync(a => a.AnimeItemId == anime.Id && a.UserId == userId); if (userScore == null) { var notOnList = new AnimeList { UserRating = 0, UserProgress = 0, CompleteStatus = 0 }; userStats.Add(notOnList); } else { userStats.Add(userScore); } } var viewModel = new UserAnimeListViewModel { User = user, AnimeInfoList = animeList, UserAnimeList = userStats }; return(View(viewModel)); }
public async Task <IActionResult> AnimeList(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 animeList = await _context.AnimeList.ToListAsync <AnimeList>(); var userAnimeList = new List <AnimeItem>(); var userScores = new List <AnimeList>(); foreach (var anime in animeList) { if (anime.UserId == userId) { var item = await _context.AnimeItem.FirstOrDefaultAsync(a => a.Id == anime.AnimeItemId); userAnimeList.Add(item); userScores.Add(anime); } } var viewModel = new UserAnimeListViewModel { User = user, AnimeInfoList = userAnimeList, UserAnimeList = userScores }; return(View(viewModel)); } }