示例#1
0
        public async Task <bool> Handle(AddMeanCommand message, CancellationToken cancellationToken)
        {
            var ratingOfMovie = _movieRepository.GetRatingOfMoviesByFilters(m => m.MovieId == message.MovieId,
                                                                            include => include.Movie).ToList();

            if (!ratingOfMovie.Any())
            {
                return(false);
            }

            var mean  = ratingOfMovie.Select(x => x.Rate).Average();
            var movie = ratingOfMovie.Select(x => x.Movie).FirstOrDefault();

            if (movie == null)
            {
                return(false);
            }

            var movieToUpdate = MovieFactory.Create(movie.Genre, movie.Title, movie.Id);

            movieToUpdate.AddMean((float)mean);

            _movieRepository.Update(movieToUpdate);

            return(await Task.FromResult(Commit()));
        }
示例#2
0
        public async Task <bool> Handle(AddMovieCommand message, CancellationToken cancellationToken)
        {
            if (!CastOfMovieIsValid(message))
            {
                return(false);
            }

            var movie           = MovieFactory.Create(message.Genre, message.Title);
            var castOfMovieList = new List <CastOfMovie>();

            foreach (var castId in message.CastIds)
            {
                var castOfMovieModel = CastOfMovieFactory.Create(movie.Id, castId);
                if (!castOfMovieModel.IsValid())
                {
                    NotifyValidationErrors(castOfMovieModel.ValidationResult);
                    return(false);
                }

                castOfMovieList.Add(castOfMovieModel);
            }

            movie.AddCastOfMovie(castOfMovieList);
            if (!movie.IsValid())
            {
                NotifyValidationErrors(movie.ValidationResult);
                return(false);
            }

            _movieRepository.Add(movie);

            return(await Task.FromResult(Commit()));
        }
示例#3
0
        public async Task Add(Guid movieId, CreateMovieRequest request)
        {
            Movie movie = MovieFactory.Create(movieId, request.Title);

            _ctx.Add(movie);
            await _ctx.SaveChangesAsync();
        }
示例#4
0
 public void CreateMovie()
 {
     using (var mf = new MovieFactory())
     {
         var movie = mf.CreateMovie();
         Assert.IsNotNull(movie);
     };
 }
示例#5
0
 public void CountShowtimes()
 {
     using (var mf = new MovieFactory())
     {
         var movie        = mf.CreateMovie();
         int numShowtimes = movie.Showtimes.Count;
         Assert.AreEqual(numShowtimes, 0);
     }
 }
示例#6
0
 public void GetSetMovieProperties()
 {
     using (var mf = new MovieFactory())
     {
         var movie = mf.CreateMovie();
         movie.Title = "Test";
         Assert.AreEqual(movie.Title, "Test");
     }
 }
示例#7
0
        public void Movie_TitleAndTypeAreCorrect()
        {
            var CinderellaChildrenMovie  = MovieFactory.GetMovieByName(MovieTitles.Cinderella);
            var StarWarsRegularMovie     = MovieFactory.GetMovieByName(MovieTitles.StarWars);
            var GladiatorNewReleaseMovie = MovieFactory.GetMovieByName(MovieTitles.Gladiator);

            Assert.AreEqual(CinderellaChildrenMovie.GetName(), MovieTitles.Cinderella);
            Assert.AreEqual(StarWarsRegularMovie.GetName(), MovieTitles.StarWars);
            Assert.AreEqual(GladiatorNewReleaseMovie.GetName(), MovieTitles.Gladiator);
            Assert.AreEqual(CinderellaChildrenMovie.GetPricingCode(), PriceCodes.Childrens);
            Assert.AreEqual(StarWarsRegularMovie.GetPricingCode(), PriceCodes.Regular);
            Assert.AreEqual(GladiatorNewReleaseMovie.GetPricingCode(), PriceCodes.NewRelease);
        }
示例#8
0
        private void btnDebugAction_Click(object sender, EventArgs e)
        {
            MovieItem[] movieItems = MovieFactory.ConstructMovieItems(MoviesFilePaths);

            StringBuilder sb = new StringBuilder();

            foreach (MovieItem movieItem in movieItems)
            {
                sb.AppendLine(movieItem.ToString());
                sb.AppendLine("-----------------------------------------------------------------------");
            }

            reMain.Text = sb.ToString();
        }
示例#9
0
 public ActionResult <string> Get(string title, int limit, string keyword, string startdate, string enddate)
 {
     try
     {
         using (var mf = new MovieFactory())
         {
             var list = mf.GetMovies(title, limit, keyword, startdate, enddate);
             return(Newtonsoft.Json.JsonConvert.SerializeObject(list));
         }
     }
     catch (Exception ex) {
         // we could a custom error object to return a json safe error message, but will just create as a string for now.
         return("{error: " + ex.Message + "}");
     }
 }
 public CustomerTests(TestOutputHelper outputHelper)
 {
     _outputHelper = outputHelper;
     _customer     = new Customer("John");
     _rentals      = new[]
     {
         new Rental(MovieFactory.CreateNewReleaseMovie("Star Wars III"), 5),
         new Rental(MovieFactory.CreateChildrensMovie("Star Wars II"), 3),
         new Rental(MovieFactory.CreateRegularMovie("Star Wars I"), 17),
     };
     foreach (var rental in _rentals)
     {
         _customer.AddRental(rental);
     }
 }
示例#11
0
        public void Init()
        {
            // Create movies
            _mCinderella = MovieFactory.GetMovieByName("Cinderella");
            _mStarWars   = MovieFactory.GetMovieByName("Star Wars");
            _mGladiator  = MovieFactory.GetMovieByName("Gladiator");

            // Create rentals
            _mRental1 = new Rental(_mCinderella, 5);
            _mRental2 = new Rental(_mStarWars, 5);
            _mRental3 = new Rental(_mGladiator, 5);

            // Create customers
            _mMickeyMouse = new Customer("Mickey Mouse");
        }
示例#12
0
 public ActionResult <string> Get(int id)
 {
     try
     {
         using (var mf = new MovieFactory())
         {
             var movie = mf.GetMovie(id);
             return(Newtonsoft.Json.JsonConvert.SerializeObject(movie));
         }
     }
     catch (Exception ex)
     {
         return("{error: " + ex.Message + "}");
     }
 }
示例#13
0
        public void CustomerStatement()
        {
            Customer Mickey = new Customer("Mickey Mouse");

            Rental rental1 = new Rental(MovieFactory.GetMovieByName(MovieTitles.Cinderella), 5);
            Rental rental2 = new Rental(MovieFactory.GetMovieByName(MovieTitles.StarWars), 5);
            Rental rental3 = new Rental(MovieFactory.GetMovieByName(MovieTitles.Gladiator), 5);

            Mickey.AddRental(rental1);
            Mickey.AddRental(rental2);
            Mickey.AddRental(rental3);

            var statement = Mickey.Statement();

            Approvals.Verify(statement);
        }
示例#14
0
        public void GetSetShowtimeProperties()
        {
            using (var mf = new MovieFactory())
            {
                var movie    = mf.CreateMovie();
                var showtime = new Showtime
                {
                    Id      = 1,
                    Time    = DateTime.Now,
                    Channel = "TestChannel"
                };
                movie.Showtimes.Add(showtime);
                int numShowtimes = movie.Showtimes.Count;

                Assert.AreEqual(numShowtimes, 1);

                Assert.AreEqual(movie.Showtimes[0].Channel, "TestChannel");
            }
        }
示例#15
0
        private async void OnScan(object sender, RoutedEventArgs e)
        {
            var progressIndicator = new Progress <MovieTaskProgress>((p) =>
            {
                ProgressMessage = string.Format("{0}/{1} - {2}", p.Current, p.Total, p.Message);
                RaizePropertyChanged("ProgressMessage");
                RaizePropertyChanged("PotentialMoviePaths");
            });

            var rootPaths = MovieScanPaths.Where(m => m.Value).Select(m => m.Key);

            PotentialMoviePaths = await Task.Run <List <MovieData> >(() =>
            {
                var movieData = MovieFactory.GetMoviesData(rootPaths.ToList(), progressIndicator);

                return(movieData);
            });

            PotentialMoviePaths.Sort(new MovieNameComparer());
            RaizePropertyChanged("PotentialMoviePaths");

            PotentialDuplicates = MovieFactory.PotentialDuplicates(PotentialMoviePaths);
            RaizePropertyChanged("PotentialDuplicates");
        }
示例#16
0
        public JsonResult Ajax([DataSourceRequest] DataSourceRequest request)
        {
            var movies = MovieFactory.Create();

            return(Json(movies.ToDataSourceResult(request)));
        }
示例#17
0
        public ActionResult Index()
        {
            var movies = MovieFactory.Create();

            return(View(movies));
        }
 public CreateMovieCommand(MovieFactory movieFactory, MovieConsole movieConsole)
 {
     _movieFactory = movieFactory;
     _movieConsole = movieConsole;
 }
示例#19
0
 public void Movie_UnknownMovieType_ExpectionAxpected()
 {
     Assert.Throws <Exception>(() => MovieFactory.GetMovieByName("This movie does not exist"));
 }
示例#20
0
 public MovieFactoryTests()
 {
     _movieFactoryTests = new MovieFactory();
 }
示例#21
0
        public void RentalPrice_ChildrenMovie_AfterMaxRentalDays()
        {
            Rental ChildrenRental = new Rental(MovieFactory.GetMovieByName(MovieTitles.Cinderella), 10);

            Assert.AreEqual(ChildrenRental.GetPrice(), 12);
        }
示例#22
0
        public void RentalPrice_NewReleaseMovie()
        {
            Rental NewReleaseRental = new Rental(MovieFactory.GetMovieByName(MovieTitles.Gladiator), 4);

            Assert.AreEqual(NewReleaseRental.GetPrice(), 12);
        }
示例#23
0
        public void RentalPrice_RegularMovie_AfterMaxRentalDays()
        {
            Rental RegularRental = new Rental(MovieFactory.GetMovieByName(MovieTitles.StarWars), 10);

            Assert.AreEqual(RegularRental.GetPrice(), 14);
        }
示例#24
0
 public CreateMovieCommand(MovieFactory movieFactory, MovieConsole movieConsole)
 {
     _movieFactory = movieFactory;
     _movieConsole = movieConsole;
 }