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); }
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); }
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); }
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); }
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); }