Esempio n. 1
0
        public IViewComponentResult Invoke()
        {
            List <MovieViewModel> allCommunityBasedRecommendation = new List <MovieViewModel>();

            IEnumerable <UserLikedMovie> allCommunityLikesFromDb = _repository.GetAllCommunityLikes();

            if (allCommunityLikesFromDb.Count() == 0)
            {
                return(View(allCommunityBasedRecommendation));
            }

            // transferring to memory because iterating over a lazy loaded query doesn't close the connection
            List <UserLikedMovie> allCommunityLikesMemory = new List <UserLikedMovie>();

            foreach (var entry in allCommunityLikesFromDb)
            {
                UserLikedMovie newEntry = new UserLikedMovie
                {
                    Id      = entry.Id,
                    MovieId = entry.MovieId,
                    Score   = entry.Score
                };
                allCommunityLikesMemory.Add(newEntry);
            }

            foreach (var likedMovie in allCommunityLikesMemory)
            {
                Movie          tempMovie          = _repository.GetMovieByMovieId(likedMovie.MovieId);
                MovieViewModel tempMovieViewModel = _mapper.Map <Movie, MovieViewModel>(tempMovie);
                allCommunityBasedRecommendation.Add(tempMovieViewModel);
            }
            return(View(allCommunityBasedRecommendation));
        }
Esempio n. 2
0
        public async Task AddToCommunityLikes(int movieId)
        {
            UserLikedMovie newUserLikedMovie = new UserLikedMovie
            {
                MovieId = movieId,
                Score   = 1
            };
            await _context.CommunityLikes.AddAsync(newUserLikedMovie);

            await _context.SaveChangesAsync();
        }
Esempio n. 3
0
        /// <summary>
        /// Adds a movie to the Community Likes and if it already exists it increments the score
        /// </summary>
        /// <param name="movieId"></param>
        private void AddMovieToCommunityLikes(int movieId)
        {
            UserLikedMovie databaseUserLikedMovie = _repository.GetCommunityLikedMovieById(movieId);

            if (databaseUserLikedMovie != null)
            {
                _repository.IncrementCommunityLikedMovieScore(movieId);
            }
            else
            {
                _repository.AddToCommunityLikes(movieId);
            }
        }
        public void GetCommunityLikedMovieById()
        {
            var options = new DbContextOptionsBuilder <MoviesContext>()
                          .UseInMemoryDatabase(databaseName: "MRCommLikedById")
                          .Options;

            addCommunityLikes(options);

            using (var context = new MoviesContext(options))
            {
                SQLRepository controller = new SQLRepository(context);

                UserLikedMovie movieScore = controller.GetCommunityLikedMovieById(3);

                Assert.Equal(4, movieScore.Score);
            }
        }
        public async Task AddToCommunityLikes()
        {
            var options = new DbContextOptionsBuilder <MoviesContext>()
                          .UseInMemoryDatabase(databaseName: "MRAddToLikes")
                          .Options;

            addCommunityLikes(options);

            using (var context = new MoviesContext(options))
            {
                SQLRepository controller = new SQLRepository(context);

                await controller.AddToCommunityLikes(8);

                UserLikedMovie movieScore = controller.GetCommunityLikedMovieById(8);

                Assert.Equal(1, movieScore.Score);
            }
        }
Esempio n. 6
0
        public UserLikedMovie GetCommunityLikedMovieById(int movieId)
        {
            UserLikedMovie movieFromDb = _context.CommunityLikes.Where(m => m.MovieId == movieId).FirstOrDefault();

            return(movieFromDb);
        }