public async Task GetMoviesAsync_OnValidArgument_ReturnSuccessResult() { var movies = new List <MovieSearchResponse> { new MovieSearchResponse { MovieId = 1, ShowId = 1 } }; var data = new MovieSearchRequest { City = "Bengaluru" }; movieServiceMock.Setup(x => x.GetMoviesAsync(data)) .ReturnsAsync((movies, true, null)); // Act var result = await controllerUnderTest.GetMoviesAsync(data); // Assert var createdResult = Assert.IsType <OkObjectResult>(result); Assert.Same(movies, createdResult.Value); }
public async Task <IPagedList <MovieDto> > GetPagedAsync(MovieSearchRequest search) { var list = await _movieRepo.GetPagedAsync(search, search.SearchTerm, search.Year, search.Duration); var dtoList = PagedList <MovieDto> .Map <Movie>(_mapper, list); return(dtoList); }
private async void frmMoviesList_Load(object sender, EventArgs e) { this.grdMoviesList.DoubleBuffered(true); MovieSearchRequest searchRequest = new MovieSearchRequest(); searchRequest = ApplyDefaultSearchValues(searchRequest) as MovieSearchRequest; await LoadMovies(searchRequest); }
private async Task LoadMovies(MovieSearchRequest searchRequest) { var result = await _moviesApi.Get <PagedList <MovieDto> >(searchRequest); grdMoviesList.AutoGenerateColumns = false; grdMoviesList.DataSource = result.Data; pgnMoviesList.PageIndex = result.PageIndex; pgnMoviesList.TotalPages = result.TotalPages; }
private async void grdMoviesList_ColumnHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e) { DataGridViewColumn clickedColumn = grdMoviesList.Columns[e.ColumnIndex]; ChangeSorting(clickedColumn.Name); MovieSearchRequest searchRequest = GetSearchRequest(); searchRequest.SortColumn = CurrentSortPropertyName; searchRequest.SortOrder = CurrentSortOrder; await LoadMovies(searchRequest); }
public IEnumerable <MovieResponse> SearchMovies(MovieSearchRequest movieSearchRequest) { return(_movieRepository.GetMovies() .Where(m => (movieSearchRequest.Genres == null || !movieSearchRequest.Genres.Any() || m.MovieGenres.Any(g => movieSearchRequest.Genres.Contains(g.Genre.Name))) && (!movieSearchRequest.YearOfRelease.HasValue || m.ReleaseDate.Year == movieSearchRequest.YearOfRelease) && (string.IsNullOrEmpty(movieSearchRequest.Title) || m.Title.Contains( movieSearchRequest.Title, StringComparison.InvariantCultureIgnoreCase))) .Select(m => m.ToMovieResponse()) .ToList()); }
public async Task <IActionResult> GetMoviesAsync([FromBody] MovieSearchRequest request) { var response = await _movieService.GetMoviesAsync(request); if (!response.IsSuccess) { return(BadRequest( new ErrorResponse { Errors = new[] { response.ErrorMessage ?? EMultiplexConstants.ErrorOccured } })); } return(Ok(response.Result)); }
public IActionResult GetMovies([FromQuery] MovieSearchRequest searchRequest) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var movies = _movieService.SearchMovies(searchRequest); if (movies?.Any() != true) { return(NotFound("No movies found for search criteria")); } return(Ok(movies)); }
private MovieSearchRequest GetSearchRequest() { MovieSearchRequest searchRequest = new MovieSearchRequest(); searchRequest = ApplyDefaultSearchValues(searchRequest) as MovieSearchRequest; searchRequest.PageIndex = pgnMoviesList.PageIndex; searchRequest.SearchTerm = txtSearchBar.Text; if (int.TryParse(txtSearchDuration.Text, out int searchDuration)) { searchRequest.Duration = searchDuration; } if (int.TryParse(txtSearchYear.Text, out int searchYear)) { searchRequest.Year = searchYear; } return(searchRequest); }
public async Task GetMoviesAsync_OnInvalidArgument_ReturnBadResult() { string errorMessage = "Error Occured"; var erroResult = new ErrorResponse { Errors = new[] { errorMessage } }; MovieSearchRequest data = null; movieServiceMock.Setup(x => x.GetMoviesAsync(data)) .ReturnsAsync((null, false, errorMessage)); // Act var result = await controllerUnderTest.GetMoviesAsync(data); // Assert var createdResult = Assert.IsType <BadRequestObjectResult>(result); Assert.Equal(400, createdResult.StatusCode); var error = (createdResult.Value as ErrorResponse).Errors.FirstOrDefault(); Assert.Equal(errorMessage, error); }
public IActionResult GetMoviesList([FromQuery] MovieSearchRequest request) { var movies = Service.GetMoviesList(request); return(Ok(movies)); }
public PaginatedData <SimpleMovie> GetMoviesList(MovieSearchRequest request) { var query = MoviesRepository.GetMovies(request.Name, request.GenreIds, request.Country, request.LengthFrom, request.LengthTo); return(PaginatedData <SimpleMovie> .Create(query, request, entityList => Mapper.Map <List <SimpleMovie> >(entityList))); }
private async void pgnMoviesList_PageChanged(object sender, EventArgs e) { MovieSearchRequest searchRequest = GetSearchRequest(); await LoadMovies(searchRequest); }
private async void txtSearch_TextChanged(object sender, EventArgs e) { MovieSearchRequest searchRequest = GetSearchRequest(); await LoadMovies(searchRequest); }
public async Task <(IEnumerable <MovieSearchResponse> Result, bool IsSuccess, string ErrorMessage)> GetMoviesAsync(MovieSearchRequest request) { Func <string, string, bool> predicate = (x, y) => { if (string.IsNullOrEmpty(y)) { return(true); } return(x.Equals(y, StringComparison.OrdinalIgnoreCase)); }; var movies = await(from m in Context.Movies join g in Context.Genres on m.GenreId equals g.Id join l in Context.Languages on m.LanguageId equals l.Id join s in Context.Shows on m.Id equals s.MovieId join ml in Context.Multiplexes on s.MultiplexId equals ml.Id join c in Context.Cities on ml.CityId equals c.Id where predicate(g.Name, request.Genre) && predicate(l.Name, request.Language) && predicate(c.Name, request.City) select new { MovieId = m.Id, MovieName = m.Name, Genre = g.Name, Language = l.Name, ShowDate = s.ShowDate, PricePerSeat = s.PricePerSeat, MultiplexId = s.MultiplexId, MultiplexName = ml.Name, City = c.Name, ShowId = s.Id }).Distinct().Select(x => new MovieSearchResponse { MovieId = x.MovieId, MovieName = x.MovieName, Genre = x.Genre, Language = x.Language, ShowDate = x.ShowDate, PricePerSeat = x.PricePerSeat, MultiplexId = x.MultiplexId, MultiplexName = x.MultiplexName, City = x.City, ShowId = x.ShowId }).ToListAsync(); return(movies, true, null); }
public async Task <(IEnumerable <MovieSearchResponse> Result, bool IsSuccess, string ErrorMessage)> GetMoviesAsync(MovieSearchRequest request) { return(await _unitOfWork.MovieRepository.GetMoviesAsync(request)); }