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