Example #1
0
        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));
        }
Example #2
0
        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));
            }
        }