Exemplo n.º 1
0
        public async Task <MoviesResponseList> GetMoviesOnFilterCriteria(MovieRequest movieRequest)
        {
            var           moviesResponseList = new MoviesResponseList();
            List <string> genres             = null;

            if (!string.IsNullOrEmpty(movieRequest.genres.Trim()))
            {
                genres = movieRequest.genres.Trim().ToUpper().Split(',').ToList();
            }
            IQueryable <Movie> movies = _context.Movies;

            if (!string.IsNullOrEmpty(movieRequest.Title))
            {
                movies = movies.Where(x => String.Equals(x.Title, movieRequest.Title, StringComparison.CurrentCultureIgnoreCase));
            }
            if (movieRequest.YearOfRelease.HasValue)
            {
                movies = movies.Where(x => x.ReleaseDate.Year == movieRequest.YearOfRelease.Value);
            }

            if (genres != null && genres.Count > 0)
            {
                movies = movies.Where(x => genres.Any(key => x.Genre.ToUpper().Contains(key)));
            }

            var result = await GetMoviesResponse(movies);

            moviesResponseList.MoviesResponses = result;
            return(moviesResponseList);
        }
Exemplo n.º 2
0
        public async Task <MoviesResponseList> GetMoviesOnTotalUsersRating()
        {
            var moviesResponseList = new MoviesResponseList();
            var result             = await GetMoviesResponse(_context.Movies);

            result = result.OrderByDescending(x => x.AverageRating).ThenBy(x => x.Title).Take(5).ToList();
            moviesResponseList.MoviesResponses = result;
            return(moviesResponseList);
        }
Exemplo n.º 3
0
        public async Task <MoviesResponseList> GetMoviesOnTotalUsersRating()
        {
            var moviesResponseList = new MoviesResponseList();

            moviesResponseList = await _movieRepository.GetMoviesOnTotalUsersRating();

            if (moviesResponseList.MoviesResponses == null || (moviesResponseList.MoviesResponses != null && moviesResponseList.MoviesResponses.Count == 0))
            {
                moviesResponseList.MoviesResponses.Add(new MoviesResponse {
                    Errors = new[] { new Error {
                                         Code = ErrorCodes.Codes.NotFound.NotFound_Movie, Message = ErrorCodes.Messages.NotFound.NotFound_Movie
                                     } }
                });
            }
            return(moviesResponseList);
        }
Exemplo n.º 4
0
        public async Task <MoviesResponseList> GetMoviesOnUserRating(string user)
        {
            var moviesResponseList = new MoviesResponseList();
            var result             = await(from m in _context.Movies
                                           join r in _context.Ratings on m.MovieID equals r.MovieID
                                           join usr in _context.Users on r.UserID equals usr.UserID
                                           where usr.UserName.Equals(user, StringComparison.OrdinalIgnoreCase)
                                           select new MoviesResponse()
            {
                ID            = m.MovieID,
                Title         = m.Title,
                YearOfRelease = m.ReleaseDate.Year,
                RunningTime   = m.RunningTime,
                genres        = m.Genre,
                AverageRating = r.MovieRating.RoundToNearestHalf()
            }).ToListAsync();

            result = result.Take(5).OrderByDescending(x => x.AverageRating).ThenBy(x => x.Title).ToList();
            moviesResponseList.MoviesResponses = result;
            return(moviesResponseList);
        }
Exemplo n.º 5
0
        public async Task <MoviesResponseList> GetMoviesOnFilterCriteria(MovieRequest movieRequest)
        {
            var moviesResponseList = new MoviesResponseList();

            try
            {
                var validateResult = _movieRequestValidator.Validate(movieRequest);
                if (validateResult.Any())
                {
                    moviesResponseList.MoviesResponses.Add(new MoviesResponse {
                        Errors = validateResult.Select(x => new Error {
                            Code = x.ErrorCode, Message = x.ErrorMessage
                        })
                    });
                    return(moviesResponseList);
                }
                moviesResponseList = await _movieRepository.GetMoviesOnFilterCriteria(movieRequest);

                if (moviesResponseList.MoviesResponses == null || (moviesResponseList.MoviesResponses != null && moviesResponseList.MoviesResponses.Count == 0))
                {
                    moviesResponseList.MoviesResponses.Add(new MoviesResponse {
                        Errors = new[] { new Error {
                                             Code = ErrorCodes.Codes.NotFound.NotFound_Movie, Message = ErrorCodes.Messages.NotFound.NotFound_Movie
                                         } }
                    });
                }
            }
            catch (Exception ex)
            {
                moviesResponseList.MoviesResponses.Add(new MoviesResponse {
                    Errors = new[] { new Error {
                                         Code = ErrorCodes.Codes.ServerError.ServerError_exception, Message = ex.ToString()
                                     } }
                });
            }
            return(moviesResponseList);
        }