コード例 #1
0
ファイル: ConsoleUI.cs プロジェクト: leobro98/video-rental
        private static void InitializeInventory()
        {
            customerId = store.CreateCustomer();
            var customer = store.GetCustomer(customerId);

            customer.BonusPoints = 100;

            // rented casettes
            VideoTitle title = new VideoTitle("Out of Africa", 1985, VideoTitle.TitleType.Old);

            store.AddCasette(title);
            RentTitle(store.FindTitle(title.Name, title.Year), 7);

            title = new VideoTitle("Spider-Man", 2002, VideoTitle.TitleType.Regular);
            store.AddCasette(title);
            RentTitle(store.FindTitle(title.Name, title.Year), 5);

            title = new VideoTitle("Spider-Man 3", 2007, VideoTitle.TitleType.Regular);
            store.AddCasette(title);
            RentTitle(store.FindTitle(title.Name, title.Year), 2);

            // available casettes
            title = new VideoTitle("Parallels", 2015, VideoTitle.TitleType.New);
            store.AddCasette(title);

            title = new VideoTitle("Casablanka", 1943, VideoTitle.TitleType.Old);
            store.AddCasette(title);

            title = new VideoTitle("District 9", 2009, VideoTitle.TitleType.Regular);
            store.AddCasette(title);

            title = new VideoTitle("Skin Trade", 2014, VideoTitle.TitleType.New);
            store.AddCasette(title);
        }
コード例 #2
0
        public MainWindow()
        {
            InitializeComponent();

            youtubeLink = new YoutubeLink();

            VideoLink.SetBinding(TextBox.TextProperty, new Binding("link")
            {
                Source = youtubeLink,
                Mode   = BindingMode.OneWayToSource,
                UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged
            });

            VideoTitle.SetBinding(Label.ContentProperty, new Binding("title")
            {
                Source = youtubeLink,
                Mode   = BindingMode.OneWay
            });

            VideoProgress.SetBinding(ProgressBar.ValueProperty, new Binding("progress")
            {
                Source = youtubeLink,
                Mode   = BindingMode.OneWay
            });

            VideoImage.SetBinding(Image.SourceProperty, new Binding("image")
            {
                Source = youtubeLink,
                Mode   = BindingMode.OneWay
            });
        }
コード例 #3
0
        private void GetFilm()
        {
            // film ID can be seen from the list of films
            int filmId = Interactor.RentFilm.GetFilmId();

            film = store.GetTitle(filmId);
        }
コード例 #4
0
        private int AddCasette(VideoTitle title)
        {
            int casetteId = repo.Casettes.Count + 1;

            repo.Casettes.Add(new Casette(casetteId, title));
            return(casetteId);
        }
コード例 #5
0
            public void Renting_a_video_tape_emits_a_recent_enough_video_title()
            {
                var videoTitleId = new VideoTitleId(Guid.NewGuid());
                var title        = VideoTitle.Register(videoTitleId, "Shaving Ryan's Privates");
                var videoTapeId  = new VideoTapeId(Guid.NewGuid());
                var tape         = title.ScanNewTape(videoTapeId, new BarCode("A432"));

                tape.ClearChanges();

                title.CorrectTitle("Saving Private Ryan");
                var videoStoreMemberId = new VideoStoreMemberId(Guid.NewGuid());

                tape.Rent(videoStoreMemberId, new RentalPeriod(DateTime.Today, DateTime.Today.AddDays(3)));

                Assert.That(tape.GetChanges(),
                            Is.EquivalentTo(new object[]
                {
                    new RentedVideoTape(
                        videoTapeId,
                        videoTitleId,
                        "Saving Private Ryan",
                        videoStoreMemberId,
                        DateTime.Today,
                        DateTime.Today.AddDays(3))
                }));
            }
コード例 #6
0
        private VideoTitle AddTitle(string name, int year, VideoTitle.TitleType titleType)
        {
            var title = new VideoTitle(name, year, repo.Titles.Count + 1);

            title.Type = titleType;
            repo.Titles.Add(title);
            return(title);
        }
コード例 #7
0
        public int AddCasette(VideoTitle title)
        {
            int id      = GetNextCasetteId();
            var casette = new Casette(id, title);

            casettes.Add(casette);
            return(id);
        }
コード例 #8
0
        public int AddTitle(VideoTitle title)
        {
            int id             = GetNextTitleId();
            var persistedTitle = new VideoTitle(title, id);

            titles.Add(persistedTitle);
            return(id);
        }
コード例 #9
0
        public void Return_False_When_Compare_VideoTitle_With_Null_Value()
        {
            // given
            VideoTitle videoTitleOne = new VideoTitle(SomeVideoTitle);

            // when
            bool result = videoTitleOne.Equals(null);

            // then
            result.Should().BeFalse();
        }
コード例 #10
0
        public void Return_False_When_Compare_VideoTitle_With_Different_Value()
        {
            // given
            VideoTitle videoTitleOne = new VideoTitle(SomeVideoTitle);
            VideoTitle videoTitleTwo = new VideoTitle(AnotherVideoTitle);

            // when
            bool result = videoTitleOne.Equals(videoTitleTwo);

            // then
            result.Should().BeFalse();
        }
コード例 #11
0
        public void Return_True_When_Compare_VideoTitle_With_Same_Value()
        {
            // given
            VideoTitle videoTitleOne = new VideoTitle(SomeVideoTitle);
            VideoTitle videoTitleTwo = new VideoTitle(SomeVideoTitle);

            // when
            bool result = videoTitleOne.Equals(videoTitleTwo);

            // then
            result.Should().BeTrue();
        }
コード例 #12
0
ファイル: ConsoleUI.cs プロジェクト: leobro98/video-rental
        /// <summary>
        /// Adds a new video title to the repository.
        /// </summary>
        private static void AddFilm()
        {
            string name  = Interactor.AddFilm.GetFilmName();
            int    year  = Interactor.AddFilm.GetYear();
            var    title = new VideoTitle(name, year);

            int casetteCount = Interactor.AddFilm.GetCasetteCount();

            for (int i = 0; i < casetteCount; i++)
            {
                store.AddCasette(title);
            }
        }
コード例 #13
0
ファイル: ConsoleUI.cs プロジェクト: leobro98/video-rental
        private static void RentTitle(VideoTitle title, int days)
        {
            var customer = store.GetCustomer(customerId);
            var casette  = store.GetCasetteOnShelfByTitle(title.Id);
            var options  = store.GetRentalOptions(customerId, title.Type, days);
            var rental   = new Rental(customer, casette)
            {
                RentalDays = days,
                Price      = options.Price
            };

            store.RentCasette(rental);
        }
コード例 #14
0
        private VideoTitle FindOrCreateTitle(VideoTitle soughtTitle)
        {
            List <VideoTitle> titles = repository.FindTitle(soughtTitle.Name, soughtTitle.Year);

            if (titles.Count == 0)
            {
                var title = new VideoTitle(soughtTitle.Name, soughtTitle.Year, soughtTitle.Type);
                int id    = repository.AddTitle(title);
                title = repository.GetTitle(id);
                return(title);
            }
            return(titles.First());
        }
コード例 #15
0
 private Video(
     VideoId id,
     VideoTitle title,
     VideoDescription description,
     VideoAuthor author,
     VideoCreatedAT createdAt
     )
 {
     this.id          = id;
     this.title       = title;
     this.description = description;
     this.author      = author;
     this.createdAt   = createdAt;
 }
コード例 #16
0
        void ReleaseDesignerOutlets()
        {
            if (BackgroundView != null)
            {
                BackgroundView.Dispose();
                BackgroundView = null;
            }

            if (VideoView != null)
            {
                VideoView.Dispose();
                VideoView = null;
            }

            if (VideoTitle != null)
            {
                VideoTitle.Dispose();
                VideoTitle = null;
            }
        }
コード例 #17
0
ファイル: Casette.cs プロジェクト: leobro98/video-rental
 public Casette(int id, VideoTitle title)
 {
     Id    = id;
     Title = title;
 }
コード例 #18
0
        /// <summary>
        /// Adds casette of a certain title to the repository.
        /// </summary>
        /// <param name="title">the title of the casette.</param>
        /// <returns>ID of the added casette.</returns>
        public int AddCasette(VideoTitle title)
        {
            var storedTitle = FindOrCreateTitle(title);

            return(repository.AddCasette(storedTitle));
        }
コード例 #19
0
 private bool Equals(VideoTitle other)
 {
     return(string.Equals(Value, other.Value));
 }
コード例 #20
0
        private void AddRental(Customer customer, VideoTitle title, int casetteId)
        {
            var casette = new Casette(casetteId, title);

            repo.Rentals.Add(new Rental(customer, casette));
        }