コード例 #1
0
        public async Task <IActionResult> Edit(int id, [Bind("ID,Name,gender,DOB,Bio,IsFamous,MovieFK")] MovieArtist movieArtist)
        {
            if (id != movieArtist.ID)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(movieArtist);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!MovieArtistExists(movieArtist.ID))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            ViewData["MovieFK"] = new SelectList(_context.Set <Movie>(), "ID", "ID", movieArtist.MovieFK);
            return(View(movieArtist));
        }
コード例 #2
0
        public async Task <IActionResult> Create([Bind("ID,Name,gender,DOB,Bio,IsFamous,MovieFK")] MovieArtist movieArtist)
        {
            if (ModelState.IsValid)
            {
                _context.Add(movieArtist);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            ViewData["MovieFK"] = new SelectList(_context.Set <Movie>(), "ID", "ID", movieArtist.MovieFK);
            return(View(movieArtist));
        }
コード例 #3
0
ファイル: XPObjectsTests.cs プロジェクト: jannisk/VideoRent
        public void ChangeArtistMovie()
        {
            XPCollection <MovieArtist> changedObjects = new XPCollection <MovieArtist>(Session, CriteriaOperator.Parse("Movie = ? AND Artist = ?", Cube, JamesCameron));

            Assert.AreEqual(0, changedObjects.Count);
            XPCollection <MovieArtist> col = new XPCollection <MovieArtist>(Session, CriteriaOperator.Parse("Movie = ? AND Artist = ?", Avatar, JamesCameron));
            MovieArtist ma = col[0];

            ma.Movie = Cube;
            SessionHelper.CommitSession(Session, null);
            changedObjects = new XPCollection <MovieArtist>(Session, CriteriaOperator.Parse("Movie = ? AND Artist = ?", Cube, JamesCameron));
            Assert.AreEqual(1, changedObjects.Count);
        }
コード例 #4
0
        public async Task CanInsertCatalogSeedDataAsync()
        {
            var context = CreateDbContext <CatalogContext>();
            await context.Database.EnsureDeletedAsync();

            await context.Database.EnsureCreatedAsync();

            var movies  = CreateMovies(10).ToArray();
            var artists = CreateArtists(10).ToArray();

            context.AddRange(movies);
            context.AddRange(artists);
            LinkCast();


            await context.SaveChangesAsync();

            IEnumerable <Movie> CreateMovies(int seed)
            {
                var movieList = new List <Movie>();

                for (int i = 1; i <= seed; i++)
                {
                    var movie = new Movie
                    {
                        Title       = $"Movie {i}",
                        Description = $"Movie description {i}",
                        Details     = new MovieDetails
                        {
                            Country     = $"Country {i}",
                            Language    = $"Language {i}",
                            PosterUrl   = $"/Poster/{i}",
                            ReleaseDate = DateTimeOffset.UtcNow.AddDays(-i * 15)
                        },
                    };
                    movieList.Add(movie);
                }

                return(movieList);
            }

            IEnumerable <Artist> CreateArtists(int seed)
            {
                for (int i = 1; i <= seed; i++)
                {
                    yield return(new Artist
                    {
                        ImageUrl = $"/Profile/{i}",
                        PersonalInformation = new PersonalInformation
                        {
                            GivenName = $"Given name {i}",
                            LastName = $"Last name {i}",
                            BirthDate = DateTimeOffset.UtcNow.AddYears(-20 - seed),
                            BirthPlace = new BirthPlace
                            {
                                City = $"City {i}",
                                Country = $"Country {i}"
                            }
                        }
                    });
                }
            }

            void LinkCast()
            {
                for (int i = 1; i <= movies.Length; i++)
                {
                    var cast = new List <MovieArtist>();
                    for (int j = 1; j <= Math.Min(i, artists.Length); j++)
                    {
                        var link = new MovieArtist
                        {
                            ArtistId = artists[j - 1].Id,
                            MovieId  = movies[i - 1].Id
                        };

                        cast.Add(link);
                    }

                    movies[i - 1].Cast = cast;
                }
            }
        }
コード例 #5
0
            public DatabaseInitializer(IServiceScopeFactory scopeFactory)
            {
                var movies  = CreateMovies(30).ToArray();
                var artists = CreateArtists(30).ToArray();

                using (var scope = scopeFactory.CreateScope())
                {
                    var catalog = scope.ServiceProvider.GetRequiredService <CatalogContext>();
                    catalog.Database.EnsureDeleted();
                    catalog.Database.EnsureCreated();
                    catalog.Movies.AddRange(movies);
                    catalog.Artists.AddRange(artists);
                    LinkCast();
                    catalog.SaveChanges();

                    var reviews = scope.ServiceProvider.GetRequiredService <ReviewsContext>();
                    reviews.Database.EnsureDeleted();
                    reviews.Database.EnsureCreated();
                    reviews.Reviews.Add(new Review
                    {
                        TopicId = 12,
                        Details = new ReviewDetails
                        {
                            AuthorId    = "44515703-d98e-4e44-8cc9-6d419c7fb954",
                            Author      = "Javier",
                            Body        = "Some outrageous comment",
                            PublishDate = DateTimeOffset.UtcNow.AddDays(-21)
                        },
                        Replies = new List <Review>
                        {
                            new Review
                            {
                                TopicId = 12,
                                Details = new ReviewDetails
                                {
                                    AuthorId    = "44515703-d98e-4e44-8cc9-6d419c7fb954",
                                    Author      = "Javier",
                                    Body        = "Review reply 1",
                                    PublishDate = DateTimeOffset.UtcNow.AddDays(-20)
                                }
                            },
                            new Review
                            {
                                TopicId = 12,
                                Details = new ReviewDetails
                                {
                                    AuthorId    = "44515703-d98e-4e44-8cc9-6d419c7fb954",
                                    Author      = "Javier",
                                    Body        = "Review reply 2",
                                    PublishDate = DateTimeOffset.UtcNow.AddDays(-20)
                                },
                                Replies = new List <Review>
                                {
                                    new Review
                                    {
                                        TopicId = 12,
                                        Details = new ReviewDetails
                                        {
                                            AuthorId    = "44515703-d98e-4e44-8cc9-6d419c7fb954",
                                            Author      = "Javier",
                                            Body        = "Review reply to reply 2",
                                            PublishDate = DateTimeOffset.UtcNow.AddDays(-20)
                                        }
                                    }
                                }
                            }
                        }
                    });
                    reviews.SaveChanges();

                    var seatCode = 1;
                    var shows    = scope.ServiceProvider.GetRequiredService <ShowsContext>();
                    shows.Database.EnsureDeleted();
                    shows.Database.EnsureCreated();
                    shows.Shows.AddRange(new Show[]
                    {
                        new Show
                        {
                            MovieId = 12,
                            Theater = new Theater
                            {
                                Name        = "Theater 1",
                                Zones       = 2,
                                RowsPerZone = 10,
                                SeatsPerRow = 5,
                                Location    = new Address
                                {
                                    Street   = "Street 1",
                                    ZipCode  = "11111",
                                    City     = "City 1",
                                    Province = "State 1",
                                    Country  = "Country 1"
                                }
                            },
                            Sessions = new List <Session>
                            {
                                new Session
                                {
                                    Start = DateTimeOffset.UtcNow.Date + TimeSpan.FromHours(16),
                                    Seats = Enumerable.Range(0, 10 * 5).Select(s => new Seat
                                    {
                                        Zone   = 0,
                                        Status = 0,
                                        Code   = seatCode++,
                                        Number = s
                                    }).Concat(Enumerable.Range(0, 10 * 5).Select(s => new Seat
                                    {
                                        Zone   = 1,
                                        Status = 0,
                                        Code   = seatCode++,
                                        Number = s
                                    })).ToList()
                                },
                                new Session
                                {
                                    Start = DateTimeOffset.UtcNow.Date + TimeSpan.FromHours(19),
                                    Seats = Enumerable.Range(0, 10 * 5).Select(s => new Seat
                                    {
                                        Zone   = 0,
                                        Status = 0,
                                        Code   = seatCode++,
                                        Number = s
                                    }).Concat(Enumerable.Range(0, 10 * 5).Select(s => new Seat
                                    {
                                        Zone   = 1,
                                        Status = 0,
                                        Code   = seatCode++,
                                        Number = s
                                    })).ToList()
                                },
                                new Session
                                {
                                    Start = DateTimeOffset.UtcNow.Date + TimeSpan.FromHours(21),
                                    Seats = Enumerable.Range(0, 10 * 5).Select(s => new Seat
                                    {
                                        Zone   = 0,
                                        Status = 0,
                                        Code   = seatCode++,
                                        Number = s
                                    }).Concat(Enumerable.Range(0, 10 * 5).Select(s => new Seat
                                    {
                                        Zone   = 1,
                                        Status = 0,
                                        Code   = seatCode++,
                                        Number = s
                                    })).ToList()
                                }
                            }
                        },
                        new Show
                        {
                            MovieId = 12,
                            Theater = new Theater
                            {
                                Name        = "Theater 2",
                                Zones       = 3,
                                RowsPerZone = 15,
                                SeatsPerRow = 8,
                                Location    = new Address
                                {
                                    Street   = "Street 2",
                                    ZipCode  = "22222",
                                    City     = "City 2",
                                    Province = "State 2",
                                    Country  = "Country 2"
                                }
                            },
                            Sessions = new List <Session>
                            {
                                new Session
                                {
                                    Start = DateTimeOffset.UtcNow.Date + TimeSpan.FromHours(17),
                                    Seats = Enumerable.Range(0, 15 * 8).Select(s => new Seat
                                    {
                                        Zone   = 0,
                                        Status = 0,
                                        Code   = seatCode++,
                                        Number = s
                                    }).Concat(Enumerable.Range(0, 15 * 8).Select(s => new Seat
                                    {
                                        Zone   = 1,
                                        Status = 0,
                                        Code   = seatCode++,
                                        Number = s
                                    }))
                                            .Concat(Enumerable.Range(0, 15 * 8).Select(s => new Seat
                                    {
                                        Zone   = 2,
                                        Status = 0,
                                        Code   = seatCode++,
                                        Number = s
                                    })).ToList()
                                },
                                new Session
                                {
                                    Start = DateTimeOffset.UtcNow.Date + TimeSpan.FromHours(20),
                                    Seats = Enumerable.Range(0, 15 * 8).Select(s => new Seat
                                    {
                                        Zone   = 0,
                                        Status = 0,
                                        Code   = seatCode++,
                                        Number = s
                                    }).Concat(Enumerable.Range(0, 15 * 8).Select(s => new Seat
                                    {
                                        Zone   = 1,
                                        Status = 0,
                                        Code   = seatCode++,
                                        Number = s
                                    }))
                                            .Concat(Enumerable.Range(0, 15 * 8).Select(s => new Seat
                                    {
                                        Zone   = 2,
                                        Status = 0,
                                        Code   = seatCode++,
                                        Number = s
                                    })).ToList()
                                },
                                new Session
                                {
                                    Start = DateTimeOffset.UtcNow.Date + TimeSpan.FromHours(22),
                                    Seats = Enumerable.Range(0, 15 * 8).Select(s => new Seat
                                    {
                                        Zone   = 0,
                                        Status = 0,
                                        Code   = seatCode++,
                                        Number = s
                                    }).Concat(Enumerable.Range(0, 15 * 8).Select(s => new Seat
                                    {
                                        Zone   = 1,
                                        Status = 0,
                                        Code   = seatCode++,
                                        Number = s
                                    }))
                                            .Concat(Enumerable.Range(0, 15 * 8).Select(s => new Seat
                                    {
                                        Zone   = 2,
                                        Status = 0,
                                        Code   = seatCode++,
                                        Number = s
                                    })).ToList()
                                }
                            }
                        }
                    });
                    shows.SaveChanges();

                    var billing = scope.ServiceProvider.GetRequiredService <BillingContext>();
                    billing.Database.EnsureDeleted();
                    billing.Database.EnsureCreated();
                    billing.Items.AddRange(shows.Seats.Select(s => new Item
                    {
                        Code  = s.Code,
                        Price = 11.0m
                    }));
                    billing.SaveChanges();
                }

                IEnumerable <Movie> CreateMovies(int seed)
                {
                    var movieList = new List <Movie>();

                    for (int i = 1; i <= seed; i++)
                    {
                        var movie = new Movie
                        {
                            Title       = $"Movie {i}",
                            Description = $"Movie description {i}",
                            Details     = new MovieDetails
                            {
                                Country     = $"Country {i}",
                                Language    = $"Language {i}",
                                PosterUrl   = $"/Movies/Poster/{i}",
                                ReleaseDate = DateTimeOffset.UtcNow.AddDays(-i * 15)
                            },
                        };
                        movieList.Add(movie);
                    }

                    return(movieList);
                }

                IEnumerable <Artist> CreateArtists(int seed)
                {
                    for (int i = 1; i <= seed; i++)
                    {
                        yield return(new Artist
                        {
                            ImageUrl = $"/Artists/Profile/Image/{i}",
                            PersonalInformation = new PersonalInformation
                            {
                                GivenName = $"Given name {i}",
                                LastName = $"Last name {i}",
                                BirthDate = DateTimeOffset.UtcNow.AddYears(-20 - seed),
                                Biography = string.Join(" ", Enumerable.Repeat($"Biography {i}", 10)),
                                BirthPlace = new BirthPlace
                                {
                                    City = $"City {i}",
                                    Country = $"Country {i}"
                                }
                            }
                        });
                    }
                }

                void LinkCast()
                {
                    for (int i = 1; i <= movies.Length; i++)
                    {
                        var cast = new List <MovieArtist>();
                        for (int j = 1; j <= Math.Min(i, artists.Length); j++)
                        {
                            var link = new MovieArtist
                            {
                                ArtistId = artists[j - 1].Id,
                                MovieId  = movies[i - 1].Id
                            };

                            cast.Add(link);
                        }

                        movies[i - 1].Cast = cast;
                    }
                }
            }