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) })); }
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); }