Ejemplo n.º 1
0
        public async Task <IActionResult> Index(string userName = null)
        {
            if (userName == null)
            {
                if (User.Identity.IsAuthenticated)
                {
                    return(RedirectToAction("Index", new { userName = User.Identity.Name }));
                }
                return(NotFound(new { message = "Username is Empty." }));
            }

            var user = await userManager.FindByNameAsync(userName);

            if (user == null)
            {
                return(NotFound(new { mesage = $"User with name '{userName}' not found." }));
            }

            var userRates = await userRateRep.GetUserRatesByUser(user.Id).ToListAsync();

            var titleIds = userRates.Select(ur => ur.TitleId);
            var movies   = await movieRep.Movies.Where(m => titleIds.Contains(m.Id)).ToListAsync();

            var currentUserRates = await User.GetUserRatesAsync(userRateRep);

            return(View(new ProfileViewModel
            {
                User = user,
                UserMovies = movies.GetUserMovies(currentUserRates)
            }));
        }
Ejemplo n.º 2
0
        public static async Task <IEnumerable <UserRate> > GetUserRatesAsync(this ClaimsPrincipal user, IUserRateRepository userRateRep)
        {
            if (user.Identity.IsAuthenticated)
            {
                var userId = user.GetUserId();

                if (userId <= 0)
                {
                    return(null);
                }

                return(await userRateRep.GetUserRatesByUser(userId).ToListAsync());
            }
            return(null);
        }