Example #1
0
        public void Execute()
        {
            var movieResponse = new List <MovieResponse>();
            var draw          = new HashSet <double>();

            var movies = _movieUserRepository.GetRatingByUser(this.UserId);

            foreach (var movie in movies)
            {
                _ratingCommand.Reviews = movie.Reviews;
                _ratingCommand.Execute();

                var response = new MovieResponse()
                {
                    Genre         = movie.Genre,
                    Title         = movie.Title,
                    RunningTime   = movie.RunningTime,
                    YearOfRelease = movie.YearOfRelease,
                    AverageRating = _ratingCommand.AverageRating
                };

                movieResponse.Add(response);
                draw.Add(movie.Reviews.FirstOrDefault() != null ? movie.Reviews.FirstOrDefault().Rating : 0);
            }

            if ((movieResponse.Count - draw.Count) >= 1)
            {
                Response = movieResponse.OrderBy(o => o.Title).Take(5).ToList();
            }
            else
            {
                Response = movieResponse.OrderByDescending(o => o.AverageRating).Take(5).ToList();
            }
        }
Example #2
0
        public void Execute()
        {
            ValidateFilters();

            if (Valid)
            {
                Response = new List <MovieResponse>();
                Match    = false;

                var movies = _movieRepository.GetAll();

                movies = ApplyFilter(movies);

                if (movies.Any())
                {
                    foreach (var movie in movies)
                    {
                        _ratingCommand.Reviews = movie.Reviews;
                        _ratingCommand.Execute();

                        var response = new MovieResponse()
                        {
                            Id            = movie.Id,
                            Genre         = movie.Genre,
                            Title         = movie.Title,
                            YearOfRelease = movie.YearOfRelease,
                            RunningTime   = movie.RunningTime,
                            AverageRating = _ratingCommand.AverageRating
                        };

                        Response.Add(response);
                    }

                    Match = true;
                }
            }
        }