//zwrócenie listy filmow public async Task <ResultDto <ListMovieDto> > GetMovies(ClaimsPrincipal user) { var result = new ResultDto <ListMovieDto>() { Error = null }; string userId = await _userManager.GetId(user); var movies = await _repo.GetAll(); List <MovieDto> moviesToSend = new List <MovieDto>(); //tworze liste filmow do zwrocenia foreach (var movie in movies) { int userRating = 0; // zmienna dla oceny filmu aktualnego usera //pobieram recenzje do obliczenia sredniej oceny filmu var reviews = await _reviewRepo.GetBy(x => x.MovieId == movie.Id); //zmienne do liczenia sredniej double reviewScoreSum = 0; double numberOfReviews = 0; //licze srednia ocene filmu z poszczegolnych recenzji foreach (var review in reviews) { if (review.UserId == userId) { userRating = review.Score; } reviewScoreSum += review.Score; numberOfReviews++; } var m = new MovieDto() { Id = movie.Id, Description = movie.Description, Logo = movie.Logo, Name = movie.Name, UserRating = userRating, UsersAverage = numberOfReviews != 0 ? reviewScoreSum / numberOfReviews : 0 }; moviesToSend.Add(m); } var movieList = new ListMovieDto() { List = moviesToSend }; result.SuccessResult = movieList; return(result); }
public async Task <ResultDto <ListMovieDto> > GetFavouriteMovies(ClaimsPrincipal user) { var result = new ResultDto <ListMovieDto>() { Error = null }; try { var movies = await _repo.GetAll(); string userId = await _userManager.GetId(user); if (string.IsNullOrEmpty(userId)) { result.Error = "Nie znaleziono u¿ytkownika"; return(result); } List <MovieDto> moviesToSend = new List <MovieDto>(); foreach (var movie in movies) { bool isFavourite = await _favouriteMovieRepo.Exists(x => x.UserId == userId && x.MovieId == movie.Id); if (isFavourite) { int userRating; // zmienna dla oceny filmu aktualnego usera //probuje uzyskac recenzje aktualnego usera var userReview = await _reviewRepo.GetEntity(x => x.UserId == userId && x.MovieId == movie.Id); if (userReview == null) { userRating = 0; } else { userRating = userReview.Score; } var m = new MovieDto() { Id = movie.Id, Description = movie.Description, Logo = movie.Logo, Name = movie.Name, UserRating = userRating }; moviesToSend.Add(m); } } var movieList = new ListMovieDto() { List = moviesToSend }; result.SuccessResult = movieList; return(result); } catch (Exception) { result.Error = "Wyst¹pi³ b³¹d"; return(result); } }