Exemplo n.º 1
0
        public Task <IPagedCollection <Movie> > GetMovies(MovieOptions options)
        {
            if (options is null)
            {
                throw new ArgumentNullException(nameof(options));
            }

            var filter = _filter
                         .ClearFilters()
                         .WhereCastInAny(options.Cast)
                         .WhereDirectorsInAny(options.Directors)
                         .WhereGenresInAny(options.Genres)
                         .WhereRatedEquals(options.Rated)
                         .WhereRuntime(options.Runtime)
                         .WhereTitleLike(options.Title)
                         .WhereTypeEquals(options.Type)
                         .WhereYear(options.Year)
                         .BuildAsLogicalAnd();

            var sortDefinition = _sorter.SortBy(options.SortBy);

            return(_collection
                   .Find(filter)
                   .Sort(sortDefinition)
                   .ToPagedCollectionAsync(options.PageNumber, options.PageSize));
        }
Exemplo n.º 2
0
 static void SetMovieOptions(MovieOptions options)
 {
     SetVideoItemOptions(options);
     options.StorageMedium       = "30";
     options.DvdRegionCode       = 31;
     options.ChannelName         = "32";
     options.ScheduledStartTimes = new[] { DateTime.Now };
     options.ScheduledEndTimes   = new[] { DateTime.Now + new TimeSpan(0, 0, 10) };
 }
Exemplo n.º 3
0
        public void MovieInstantiation()
        {
            var options = new MovieOptions();

            SetMovieOptions(options);
            var movie = new Movie("-1", "-1", options);

            AssertMovie(movie, options);
            AssertMovie(movie, movie.GetOptions());
        }
Exemplo n.º 4
0
 static void AssertMovie(Movie movie, MovieOptions options)
 {
     AssertVideoItem(movie, options);
     Assert.AreEqual(movie.StorageMedium, options.StorageMedium);
     Assert.AreEqual(movie.DvdRegionCode, options.DvdRegionCode);
     Assert.AreEqual(movie.ChannelName, options.ChannelName);
     Assert.IsTrue(movie.ScheduledStartTimes.IsReadOnly);
     Assert.IsTrue(movie.ScheduledEndTimes.IsReadOnly);
     CollectionAssert.AreEqual(movie.ScheduledStartTimes, options.ScheduledStartTimes);
     CollectionAssert.AreEqual(movie.ScheduledEndTimes, options.ScheduledEndTimes);
 }
Exemplo n.º 5
0
        public async Task <IActionResult> ListMovies([FromQuery] MovieOptions options)
        {
            var response = await _movieService.GetMovieListAsync(new Services.GetMovieListRequest
            {
                Options = _mapper.Map <Services.MovieOptions>(options)
            });

            return(this.OkWithPageHeader(
                       items: _mapper.Map <IPagedCollection <Movie> >(response),
                       routeName: nameof(ListMovies),
                       queryParams: options,
                       urlHelper: Url));
        }
Exemplo n.º 6
0
        public async Task Should_get_list_of_movies()
        {
            // arrange
            var dao    = _services.GetRequiredService <IMovieDao>();
            var movies = new List <Movie>();
            var page   = new PagedCollection <Movie>(1, 2000) as IPagedCollection <Movie>;

            // act
            for (var pageCount = 0; pageCount < 10; pageCount++)
            {
                var options = MovieOptions.Empty(
                    pageNumber: page.NextPageNumber ?? page.CurrentPageNumber,
                    pageSize: page.PageSize);

                page = await dao.GetMovies(options).ConfigureAwait(true);

                movies.AddRange(page);
            }

            // assert
            Assert.Equal(20000, movies.Count);
        }
Exemplo n.º 7
0
 public MovieMakerHelper(MovieOptions options)
 {
     this.Options = options;
 }