Пример #1
0
        public async Task LinkActorAndMovie(Guid actorId, Guid movieId)
        {
            var actor = await _actorRepository.FindByAsync(e => e.Id == actorId);

            if (actor == null)
            {
                throw new ArgumentException($"Actor with id: {actorId} doesn't exist");
            }

            var movie = await _movieRepository.FindByAsync(e => e.Id == movieId);

            if (movie == null)
            {
                throw new ArgumentException($"Movie with id: {movieId} doesn't exist");
            }

            var actorMovie = await _actorMovieRepository.FindByAsync(e => e.ActorId == actorId && e.MovieId == movieId);

            if (actorMovie != null)
            {
                throw new ArgumentException($"Actor {actorId} and Movie {movieId} already linked");
            }

            actorMovie = new ActorMovie()
            {
                MovieId      = movieId,
                ActorId      = actorId,
                ActorMovieId = Guid.NewGuid()
            };

            await _actorMovieRepository.AddAsync(actorMovie);
        }
        public async Task <IActionResult> addActorToMovieAsync(string idM, string idA)
        {
            if (HttpContext.Session.GetObjectFromJson <User>("loggedUser") == null)
            {
                return(Unauthorized());
            }
            if (!HttpContext.Session.GetObjectFromJson <User>("loggedUser").IsAdmin)
            {
                return(Unauthorized());
            }

            if (movieRepo.Get(a => a.Id == idM) == null || actorRepo.Get(a => a.Id == idA) == null)
            {
                return(NotFound());
            }

            ActorMovie actorMovie = new ActorMovie();

            try
            {
                actorMovie.Actor = actorRepo.Get(a => a.Id == idA);
                actorMovie.Movie = movieRepo.Get(a => a.Id == idM);

                actorMovieRepo.Insert(actorMovie);
            }
            catch (Exception ex)
            {
                await _logger.LogCustomExceptionAsync(ex, null);

                return(BadRequest());
            }

            return(Ok(actorMovie));
        }
Пример #3
0
        public HttpStatusCodeResult EditMovie(MovieVM movieVM)
        {
            if (movieVM != null)
            {
                Movie Movie = DB.Movies.Where(m => m.ID == movieVM.ID).FirstOrDefault();

                Movie.Name       = movieVM.Name;
                Movie.Plot       = movieVM.Plot;
                Movie.Poster     = movieVM.Poster ?? Movie.Poster;
                Movie.ProducerID = movieVM.ProducerID;
                IEnumerable <ActorMovie> ActMov = DB.ActorsMovies.Where(a => a.MovieID == movieVM.ID);
                DB.ActorsMovies.RemoveRange(ActMov);
                foreach (var Actor in movieVM.ActorList)
                {
                    ActorMovie AM = new ActorMovie
                    {
                        ActorID = Actor,
                        MovieID = Movie.ID
                    };
                    DB.ActorsMovies.Add(AM);
                }
                DB.SaveChanges();
                return(new HttpStatusCodeResult(HttpStatusCode.OK));
            }
            else
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
        }
Пример #4
0
        public IActionResult addActorToMovie(string idM, string idA)
        {
            if (HttpContext.Session.GetObjectFromJson <User>("loggedUser") == null)
            {
                return(Unauthorized());
            }
            if (!HttpContext.Session.GetObjectFromJson <User>("loggedUser").IsAdmin)
            {
                return(Unauthorized());
            }

            if (movieRepo.Get(a => a.Id == idM) == null || actorRepo.Get(a => a.Id == idA) == null)
            {
                return(NotFound());
            }

            ActorMovie actorMovie = new ActorMovie();

            actorMovie.Actor = actorRepo.Get(a => a.Id == idA);
            actorMovie.Movie = movieRepo.Get(a => a.Id == idM);

            actorMovieRepo.Insert(actorMovie);

            return(Ok(actorMovie));
        }
Пример #5
0
        public HttpStatusCodeResult NewMovie(MovieVM movieVM)
        {
            Movie Movie = new Movie
            {
                Name       = movieVM.Name,
                Plot       = movieVM.Plot,
                Poster     = movieVM.Poster,
                ProducerID = movieVM.ProducerID
            };

            DB.Movies.Add(Movie);
            DB.SaveChanges();

            foreach (var Actor in movieVM.ActorList)
            {
                ActorMovie AM = new ActorMovie
                {
                    ActorID = Actor,
                    MovieID = Movie.ID
                };
                DB.ActorsMovies.Add(AM);
            }

            DB.SaveChanges();
            return(new HttpStatusCodeResult(HttpStatusCode.OK));
        }
Пример #6
0
        public IActionResult Create(MovieCreateModel movieCreateModel)
        {
            #region automappersiz
            Movie movie = new Movie();
            movie.Name        = movieCreateModel.Name;
            movie.Description = movieCreateModel.Description;
            movie.Length      = movieCreateModel.Length;
            movie.Actors      = new List <ActorMovie>();
            foreach (var actor in movieCreateModel.Actors)
            {
                ActorMovie actorMovie = new ActorMovie();
                var        query      = _actorRepository.GetById(actor);
                actorMovie.Actor = query;
                actorMovie.Movie = movie;
                movie.Actors.Add(actorMovie);
            }

            #endregion

            // Movie movieResponseModel = _mapper.Map<Movie>(movieCreateModel);
            //
            // foreach (var actor in movieCreateModel.Actors)
            // {
            //     ActorMovie actor1 = new ActorMovie();
            //     actor1.Actor = _actorRepository.GetById(actor);
            //     movieResponseModel.Actors.Add(actor1);
            // }
            //
            // MovieResponseModel movieResponse = _mapper.Map<MovieResponseModel>(_movieRepository.Create(movieResponseModel));

            return(Ok(movie));
        }
Пример #7
0
        public IActionResult Update(MovieUpdateModel movieUpdateModel)
        {
            Movie movie = _mapper.Map <Movie>(movieUpdateModel);

            foreach (var actor in movieUpdateModel.Actors)
            {
                ActorMovie actor1 = new ActorMovie();
                actor1.Actor = _actorRepository.GetById(actor);
                movie.Actors.Add(actor1);
            }
            MovieResponseModel movieResponse = _mapper.Map <MovieResponseModel>(_movieRepository.Update(movie));

            return(Ok(movieResponse));
        }
 public IActionResult Create(MovieActorVM movieActorVM)
 {
     foreach (var obj in movieActorVM.ActorCheckBoxList)
     {
         if (obj.IsChecked)
         {
             ActorMovie actorMovie = new ActorMovie()
             {
                 IdMovie = movieActorVM.IdMovie,
                 IdActor = obj.Id
             };
             _db.Add(actorMovie);
             _db.SaveChanges();
         }
     }
     return(RedirectToAction("Index", new { id = movieActorVM.IdMovie }));
 }
Пример #9
0
        public ActionResult Delete(ActorMovie requestActorMovie, string Group)
        {
            ActorMovie conn = dam.ActorMovies.Where(p => p.ActorId == requestActorMovie.ActorId &&
                                                    p.MovieId == requestActorMovie.MovieId).FirstOrDefault();

            dam.ActorMovies.Remove(conn);
            dam.SaveChanges();

            if (Group.Equals("Actor"))
            {
                return(RedirectToAction("Edit", Group, new { id = requestActorMovie.ActorId }));
            }
            else
            {
                return(RedirectToAction("Edit", Group, new { id = requestActorMovie.MovieId }));
            }
        }
Пример #10
0
        private void ParseActors(string actors, Movie movie)
        {
            string[]          actorsNames   = actors.Split("\r\n");
            List <Actor>      result        = new List <Actor>();
            List <ActorMovie> ams           = new List <ActorMovie>();
            IActorsService    actorsService = new ActorsService(db);

            foreach (var actorName in actorsNames)
            {
                Actor actor       = null;
                bool  isActorInDb = false;

                foreach (var AnActor in this.db.Actors)
                {
                    if (actorName == AnActor.Name)
                    {
                        isActorInDb = true;
                        actor       = AnActor;

                        break;
                    }
                }

                if (!isActorInDb)
                {
                    actorsService.CreateActor(actorName);
                    actor = this.db.Actors.Last();
                }

                ActorMovie am = new ActorMovie
                {
                    ActorId = actor.Id,
                    Actor   = actor,
                    Movie   = movie,
                    MovieId = movie.Id
                };

                result.Add(actor);
                ams.Add(am);
            }

            this.db.ActorsMovies.AddRange(ams);

            this.db.SaveChanges();
        }
Пример #11
0
        public async Task CreateAsync(MovieCreate movieUi)
        {
            var actorIds = new List <Guid>();

            if (movieUi.GenreId == Guid.Empty)
            {
                throw new ArgumentException($"Genre can't be null");
            }

            if (movieUi.FirstActor == Guid.Empty)
            {
                throw new ArgumentException($"Movie should has at least one actor");
            }

            var existedActor = await _actorRepository.FindByAsync(e => e.Id == movieUi.FirstActor);

            if (existedActor == null)
            {
                throw new ArgumentException($"Can't create movie with not existed actor id : {movieUi.FirstActor}");
            }

            var movie = new Movie()
            {
                Genre   = movieUi.Genre,
                GenreId = movieUi.GenreId,
                Id      = Guid.NewGuid(),
                Title   = movieUi.Title,
                Year    = movieUi.Year,
            };

            await _movieRepository.AddAsync(movie);


            //Link movie to actors
            var actorMovie = new ActorMovie()
            {
                ActorId      = movieUi.FirstActor,
                MovieId      = movie.Id,
                ActorMovieId = Guid.NewGuid()
            };

            await _actorMovieRepository.AddAsync(actorMovie);
        }
Пример #12
0
        public async Task <IActionResult> Create(MovieVM viewModel, int[] selectedActors)
        {
            // If Modal Validation Fails
            if (!ModelState.IsValid)
            {
                ViewData["ProducerId"] = new SelectList(
                    _context.Producers, "Id", "Name", viewModel.ProducerId);

                return(View(viewModel));
            }

            var movie = new Movie
            {
                MovieName  = viewModel.MovieName,
                Released   = viewModel.Released,
                Plot       = viewModel.Plot,
                Poster     = viewModel.Poster,
                ProducerId = viewModel.ProducerId
            };

            _context.Add(movie);

            if (selectedActors != null)
            {
                foreach (var item in selectedActors)
                {
                    Actor actor = _context.Actors.Find(item);

                    var actorMovieVM = new ActorMovie
                    {
                        MovieId = movie.MovieId,
                        ActorId = actor.ActorId
                    };

                    _context.Add(actorMovieVM);
                }
            }

            await _context.SaveChangesAsync();

            return(RedirectToAction(nameof(Index)));
        }
Пример #13
0
        public IActionResult Create(ActorCreateModel actorCreateModel)
        {
            //Actor actor = new Actor();
            //actor.Name = actorCreateModel.Name;
            //actor.Surname = actorCreateModel.Surname;
            //actor.Age = actorCreateModel.Age;
            //_actorRepository.Create(actor);
            //return Ok(actorCreateModel);
            Actor actor = _mapper.Map <Actor>(actorCreateModel);

            foreach (var actor1 in actorCreateModel.MovieId)
            {
                ActorMovie actorMovie = new ActorMovie();
                actorMovie.Movie = _movieRepository.GetById(actor1);
                actor.Movies.Add(actorMovie);
            }
            ActorResponseModel actorResponse = _mapper.Map <ActorResponseModel>(_actorRepository.Create(actor));

            return(Ok(actorResponse));
        }
Пример #14
0
        private static void ManyToManyRelationship(EFCoreRelationshipsExamplesDbContext context)
        {
            var actor1 = new Actor {
                Name = "Marlon Brando"
            };
            var actor2 = new Actor {
                Name = "Al Pacino"
            };

            context.Add(actor1);
            context.Add(actor2);

            var movie1 = new Movie {
                Name = "The Godfather"
            };
            var movie2 = new Movie {
                Name = "Scarface"
            };

            context.Add(movie1);
            context.Add(movie2);
            context.SaveChanges();

            var actorMovies1 = new ActorMovie()
            {
                ActorId = actor1.Id, MovieId = movie1.Id
            };
            var actorMovies2 = new ActorMovie()
            {
                ActorId = actor2.Id, MovieId = movie1.Id
            };
            var actorMovies3 = new ActorMovie()
            {
                ActorId = actor2.Id, MovieId = movie2.Id
            };

            context.Add(actorMovies1);
            context.Add(actorMovies2);
            context.Add(actorMovies3);
            context.SaveChanges();
        }
        public async Task PutActorMovie(string id, PutActorMovieModel putActorMovieModel)
        {
            try
            {
                ActorMovie actorMovie = await _context.ActorMovies.FirstOrDefaultAsync((x => x.Id == Guid.Parse(id)));

                if (actorMovie == null)
                {
                    throw new EntityException("Actormovie not found", this.GetType().Name, "PutActorMovie", "404");
                }

                Actor actor = await _context.Actors.FirstOrDefaultAsync(x => x.Id == putActorMovieModel.ActorId);

                if (actor == null)
                {
                    throw new EntityException("Actor not found", this.GetType().Name, "PutActorMovie", "404");
                }

                Movie movie = await _context.Movies.FirstOrDefaultAsync(x => x.Id == putActorMovieModel.MovieId);

                if (movie == null)
                {
                    throw new EntityException("Movie not found", this.GetType().Name, "PutActorMovie", "404");
                }

                actorMovie.ActorId = putActorMovieModel.ActorId;
                actorMovie.Actor   = actor;
                actorMovie.MovieId = putActorMovieModel.MovieId;
                actorMovie.Movie   = movie;

                await _context.SaveChangesAsync();
            }
            catch (MovieMindException)
            {
                throw;
            }
            catch (Exception e)
            {
                throw new DatabaseException(e.InnerException.Message, this.GetType().Name, "PutActorMovie", "400");
            }
        }
Пример #16
0
        public async Task <IActionResult> Edit(int id, Movie movie, MovieVM viewModel, int[] selectedActors)
        {
            // BUG: Edit will create a new Movie Entry instead of Updating existing!

            if (ModelState.IsValid)
            {
                ViewData["ProducerId"] = new SelectList(
                    _context.Producers, "Id", "Name", movie.ProducerId);
                return(View());
            }

            var editMovie = new Movie
            {
                MovieName  = viewModel.MovieName,
                Released   = viewModel.Released,
                Plot       = viewModel.Plot,
                Poster     = viewModel.Poster,
                ProducerId = viewModel.ProducerId
            };

            if (selectedActors != null)
            {
                foreach (var item in selectedActors)
                {
                    Actor actor = _context.Actors.Find(item);

                    var actorMovieVM = new ActorMovie
                    {
                        MovieId = movie.MovieId,
                        ActorId = actor.ActorId
                    };

                    _context.Update(actorMovieVM);
                }
            }

            _context.Update(editMovie);
            await _context.SaveChangesAsync();

            return(RedirectToAction(nameof(Index)));
        }
Пример #17
0
        public ActionResult New(ActorMovie requestActorMovie, string Group)
        {
            ActorMovie am = new ActorMovie();

            am.MovieId       = requestActorMovie.MovieId;
            am.ActorId       = requestActorMovie.ActorId;
            am.Role          = requestActorMovie.Role;
            am.CharacterName = requestActorMovie.CharacterName;

            dam.ActorMovies.Add(am);
            dam.SaveChanges();

            if (Group.Equals("Actor"))
            {
                return(RedirectToAction("Edit", Group, new { id = requestActorMovie.ActorId }));
            }
            else
            {
                return(RedirectToAction("Edit", Group, new { id = requestActorMovie.MovieId }));
            }
        }
Пример #18
0
        public async Task <IActionResult> ActorToMovie(int id, int actorId)
        {
            var actor = await _repo.GetActor(actorId);

            var movie = await _repo.GetMovie(id);

            var actorMovie = await _repo.GetActorMovieRelation(actorId, id);

            if (actorMovie != null)
            {
                return(BadRequest("This actor is already in that movie"));
            }

            if (actor == null || movie == null)
            {
                return(NotFound());
            }

            if (movie.Year < actor.BirthDay.Year)
            {
                return(BadRequest("The actor was born later than the movie was made"));
            }

            actorMovie = new ActorMovie
            {
                ActorId = actorId,
                MovieId = id
            };

            _repo.Add(actorMovie);

            if (await _repo.SaveAll())
            {
                return(Ok());
            }

            return(BadRequest("Failed to add actor to movie"));
        }
        public async Task DeleteActorMovie(string id)
        {
            try
            {
                ActorMovie actorMovie = await _context.ActorMovies.FirstOrDefaultAsync((x => x.Id == Guid.Parse(id)));

                if (actorMovie == null)
                {
                    throw new EntityException("Actormovie not found", this.GetType().Name, "DeleteActorMovie", "404");
                }

                _context.ActorMovies.Remove(actorMovie);
                await _context.SaveChangesAsync();
            }
            catch (MovieMindException)
            {
                throw;
            }
            catch (Exception e)
            {
                throw new DatabaseException(e.InnerException.Message, this.GetType().Name, "PutActorMovie", "400");
            }
        }
        public async Task <ActionResult <ActorModel> > Post(int actorId, int movieId)
        {
            try
            {
                // code to retrieve actor, code to verify movie, and return actor with new movie attached
                var movieExists = _movieRepository.CheckForExistingMovie(movieId);

                if (!movieExists)
                {
                    return(BadRequest($"The movie id, {movieId}, does not exist."));
                }

                var actor = await _actorRepository.GetActorAsync(actorId);

                var location = _linkGenerator.GetPathByAction("Get", "Actors", new { actorId });

                var actorMovie = new ActorMovie
                {
                    MovieId = movieId,
                    ActorId = actorId
                };

                _actorRepository.Add(actorMovie);

                if (await _actorRepository.SaveChangesAsync())
                {
                    return(Created(location, _mapper.Map <ActorModel>(actor)));
                }

                return(Problem($"The actor, {actor.FirstName} {actor.LastName}, was added to the movie.",
                               "Post", StatusCodes.Status304NotModified));
            }
            catch (Exception ex)
            {
                return(StatusCode(StatusCodes.Status500InternalServerError, ex.Message));
            }
        }
Пример #21
0
        public static void Seed(this ModelBuilder modelBuilder)
        {
            //Movies
            var shawshank = new Movie {
                MovieId = 1, Title = "The Shawshank Redemption", Genre = "Drama", Year = 1994, Runtime = 144
            };
            var seven = new Movie {
                MovieId = 2, Title = "Se7en", Genre = "Mystery", Year = 1995, Runtime = 127
            };
            var silence = new Movie {
                MovieId = 3, Title = "The Silence of the Lambs", Genre = "Thriller", Year = 1991, Runtime = 118
            };
            var godfather = new Movie {
                MovieId = 4, Title = "The Godfather", Genre = "Crime", Year = 1972, Runtime = 175
            };
            var basterds = new Movie {
                MovieId = 5, Title = "Inglourious Basterds", Genre = "Adventure", Year = 2009, Runtime = 153
            };
            var pan = new Movie {
                MovieId = 6, Title = "Pan's Labyrinth", Genre = "Fantasy", Year = 2006, Runtime = 118
            };
            var spirit = new Movie {
                MovieId = 7, Title = "Spirited Away", Genre = "Animation", Year = 2001, Runtime = 125
            };
            var gladiator = new Movie {
                MovieId = 8, Title = "Gladiator", Genre = "Action", Year = 2000, Runtime = 155
            };
            var django = new Movie {
                MovieId = 9, Title = "Django Unchained", Genre = "Western", Year = 2012, Runtime = 165
            };
            var inception = new Movie {
                MovieId = 10, Title = "Inception", Genre = "Sci-Fi", Year = 2010, Runtime = 148
            };

            //Actors
            var mFreeman = new Actor {
                ActorId = 1, FirstName = "Morgan", LastName = "Freeman"
            };
            var tRobbins = new Actor {
                ActorId = 2, FirstName = "Tim", LastName = "Robbins"
            };
            var bGunton = new Actor {
                ActorId = 3, FirstName = "Bob", LastName = "Gunton"
            };
            var kSpacey = new Actor {
                ActorId = 4, FirstName = "Kevin", LastName = "Spacey"
            };
            var bPitt = new Actor {
                ActorId = 5, FirstName = "Brad", LastName = "Pitt"
            };
            var jFoster = new Actor {
                ActorId = 6, FirstName = "Jodie", LastName = "Foster"
            };
            var aHopkins = new Actor {
                ActorId = 7, FirstName = "Anthony", LastName = "Hopkins"
            };
            var mBrando = new Actor {
                ActorId = 8, FirstName = "Marlon", LastName = "Brando"
            };
            var aPacino = new Actor {
                ActorId = 9, FirstName = "Al", LastName = "Pacino"
            };
            var cWaltz = new Actor {
                ActorId = 10, FirstName = "Christopher", LastName = "Waltz"
            };
            var iBaquero = new Actor {
                ActorId = 11, FirstName = "Ivana", LastName = "Baquero"
            };
            var sLopez = new Actor {
                ActorId = 12, FirstName = "Sergi", LastName = "Lopez"
            };
            var rHiiragi = new Actor {
                ActorId = 13, FirstName = "Rumi", LastName = "Hiiragi"
            };
            var mIrino = new Actor {
                ActorId = 14, FirstName = "Miyu", LastName = "Irino"
            };
            var rCrowe = new Actor {
                ActorId = 15, FirstName = "Russel", LastName = "Crowe"
            };
            var jPhoenix = new Actor {
                ActorId = 16, FirstName = "Joaquin", LastName = "Phoenix"
            };
            var jFoxx = new Actor {
                ActorId = 17, FirstName = "Jamie", LastName = "Foxx"
            };
            var lDicaprio = new Actor {
                ActorId = 18, FirstName = "Leonardo", LastName = "DiCaprio"
            };
            var jLevitt = new Actor {
                ActorId = 19, FirstName = "Joseph", LastName = "Gordon-Levitt"
            };

            //Directors
            var fDarabont = new Director {
                DirectorId = 1, FirstName = "Frank", LastName = "Darabont"
            };
            var dFincher = new Director {
                DirectorId = 2, FirstName = "David", LastName = "Fincher"
            };
            var jDemme = new Director {
                DirectorId = 3, FirstName = "Jonathan", LastName = "Demme"
            };
            var fCoppola = new Director {
                DirectorId = 4, FirstName = "Francis", LastName = "Coppola"
            };
            var qTarantino = new Director {
                DirectorId = 5, FirstName = "Quentin", LastName = "Tarantino"
            };
            var gToro = new Director {
                DirectorId = 6, FirstName = "Guillermo", LastName = "del Toro"
            };
            var hMiyazaki = new Director {
                DirectorId = 7, FirstName = "Hayao", LastName = "Miyazaki"
            };
            var rScott = new Director {
                DirectorId = 8, FirstName = "Ridley", LastName = "Scott"
            };
            var cNolan = new Director {
                DirectorId = 9, FirstName = "Christopher", LastName = "Nolan"
            };

            //ActorMovies
            var shawFreeman = new ActorMovie {
                MovieId = 1, ActorId = 1
            };
            var shawRobbins = new ActorMovie {
                MovieId = 1, ActorId = 2
            };
            var shawGunton = new ActorMovie {
                MovieId = 1, ActorId = 3
            };
            var sevFreeman = new ActorMovie {
                MovieId = 2, ActorId = 1
            };
            var sevSpacey = new ActorMovie {
                MovieId = 2, ActorId = 4
            };
            var sevPitt = new ActorMovie {
                MovieId = 2, ActorId = 5
            };
            var silFoster = new ActorMovie {
                MovieId = 3, ActorId = 6
            };
            var silHopkins = new ActorMovie {
                MovieId = 3, ActorId = 7
            };
            var godBrando = new ActorMovie {
                MovieId = 4, ActorId = 8
            };
            var godPacino = new ActorMovie {
                MovieId = 4, ActorId = 9
            };
            var bastPitt = new ActorMovie {
                MovieId = 5, ActorId = 5
            };
            var bastWaltz = new ActorMovie {
                MovieId = 5, ActorId = 10
            };
            var panBaquero = new ActorMovie {
                MovieId = 6, ActorId = 11
            };
            var panLopez = new ActorMovie {
                MovieId = 6, ActorId = 12
            };
            var spiritHiiragi = new ActorMovie {
                MovieId = 7, ActorId = 13
            };
            var spiritIrino = new ActorMovie {
                MovieId = 7, ActorId = 14
            };
            var gladCrowe = new ActorMovie {
                MovieId = 8, ActorId = 15
            };
            var gladPhoenix = new ActorMovie {
                MovieId = 8, ActorId = 16
            };
            var djangoFoxx = new ActorMovie {
                MovieId = 9, ActorId = 17
            };
            var djangoDicaprio = new ActorMovie {
                MovieId = 9, ActorId = 18
            };
            var djangoWaltz = new ActorMovie {
                MovieId = 9, ActorId = 10
            };
            var inceptionDiCaprio = new ActorMovie {
                MovieId = 10, ActorId = 18
            };
            var inceptionLevitt = new ActorMovie {
                MovieId = 10, ActorId = 19
            };


            //DirectorMovies
            var shawDarabont = new DirectorMovie {
                MovieId = 1, DirectorId = 1
            };
            var sevFincher = new DirectorMovie {
                MovieId = 2, DirectorId = 2
            };
            var silDemme = new DirectorMovie {
                MovieId = 3, DirectorId = 3
            };
            var godCoppola = new DirectorMovie {
                MovieId = 4, DirectorId = 4
            };
            var bastTarantino = new DirectorMovie {
                MovieId = 5, DirectorId = 5
            };
            var panToro = new DirectorMovie {
                MovieId = 6, DirectorId = 6
            };
            var spiritMiyazaki = new DirectorMovie {
                MovieId = 7, DirectorId = 7
            };
            var gladScott = new DirectorMovie {
                MovieId = 8, DirectorId = 8
            };
            var djangoTarantino = new DirectorMovie {
                MovieId = 9, DirectorId = 5
            };
            var inceptionNolan = new DirectorMovie {
                MovieId = 10, DirectorId = 9
            };

            //Seed
            modelBuilder.Entity <Movie>().HasData(shawshank, seven, silence, godfather, basterds, pan, spirit, gladiator, django, inception);
            modelBuilder.Entity <Actor>().HasData(mFreeman, tRobbins, bGunton, kSpacey, bPitt, jFoster, aHopkins, mBrando, aPacino, cWaltz, iBaquero, sLopez,
                                                  rHiiragi, mIrino, rCrowe, jPhoenix, jFoxx, lDicaprio, jLevitt);
            modelBuilder.Entity <Director>().HasData(fDarabont, dFincher, jDemme, fCoppola, qTarantino, gToro, hMiyazaki, rScott, cNolan);
            modelBuilder.Entity <ActorMovie>().HasData(shawFreeman, shawGunton, shawRobbins, sevFreeman, sevSpacey, sevPitt, silFoster, silHopkins,
                                                       godBrando, godPacino, bastPitt, bastWaltz, panBaquero, panLopez, spiritIrino, spiritHiiragi, gladCrowe, gladPhoenix, djangoDicaprio, djangoFoxx,
                                                       djangoWaltz, inceptionDiCaprio, inceptionLevitt);
            modelBuilder.Entity <DirectorMovie>().HasData(shawDarabont, sevFincher, silDemme, godCoppola, bastTarantino, panToro, spiritMiyazaki, gladScott, djangoTarantino, inceptionNolan);
        }
 public void Add(ActorMovie actorMovie)
 {
     _context.Add(actorMovie);
     _context.SaveChanges();
 }
        private static void InitRelatioships()
        {
            //Actormovie
            //==========

            //American Hustle
            ActorMovie americanHustleLawrence = new ActorMovie
            {
                ActorId = FindActor("Jennifer", "Lawrence").Id,
                Actor   = FindActor("Jennifer", "Lawrence"),
                MovieId = FindMovie("American Hustle", 2013).Id,
                Movie   = FindMovie("American Hustle", 2013)
            };

            _context.ActorMovies.Add(americanHustleLawrence);

            ActorMovie americanHustleCooper = new ActorMovie
            {
                ActorId = FindActor("Bradley", "Cooper").Id,
                Actor   = FindActor("Bradley", "Cooper"),
                MovieId = FindMovie("American Hustle", 2013).Id,
                Movie   = FindMovie("American Hustle", 2013)
            };

            _context.ActorMovies.Add(americanHustleCooper);

            ActorMovie americanHustleBale = new ActorMovie
            {
                ActorId = FindActor("Christian", "Bale").Id,
                Actor   = FindActor("Christian", "Bale"),
                MovieId = FindMovie("American Hustle", 2013).Id,
                Movie   = FindMovie("American Hustle", 2013)
            };

            _context.ActorMovies.Add(americanHustleBale);

            //Silver Linings Playbook
            ActorMovie silverLawrence = new ActorMovie
            {
                ActorId = FindActor("Jennifer", "Lawrence").Id,
                Actor   = FindActor("Jennifer", "Lawrence"),
                MovieId = FindMovie("Silver Linings Playbook", 2012).Id,
                Movie   = FindMovie("Silver Linings Playbook", 2012)
            };

            _context.ActorMovies.Add(silverLawrence);

            ActorMovie silverCooper = new ActorMovie
            {
                ActorId = FindActor("Bradley", "Cooper").Id,
                Actor   = FindActor("Bradley", "Cooper"),
                MovieId = FindMovie("Silver Linings Playbook", 2012).Id,
                Movie   = FindMovie("Silver Linings Playbook", 2012)
            };

            _context.ActorMovies.Add(silverCooper);

            //The Wolf Of Wall Street
            ActorMovie wolfDiCaprio = new ActorMovie
            {
                ActorId = FindActor("Leonardo", "Di Caprio").Id,
                Actor   = FindActor("Leonardo", "Di Caprio"),
                MovieId = FindMovie("The Wolf of Wall Street", 2013).Id,
                Movie   = FindMovie("The Wolf of Wall Street", 2013)
            };

            _context.ActorMovies.Add(wolfDiCaprio);

            ActorMovie wolfMcConaughey = new ActorMovie
            {
                ActorId = FindActor("Matthew", "McConaughey").Id,
                Actor   = FindActor("Matthew", "McConaughey"),
                MovieId = FindMovie("The Wolf of Wall Street", 2013).Id,
                Movie   = FindMovie("The Wolf of Wall Street", 2013)
            };

            _context.ActorMovies.Add(wolfMcConaughey);

            //Interstellar
            ActorMovie interstellarMcConaughey = new ActorMovie
            {
                ActorId = FindActor("Matthew", "McConaughey").Id,
                Actor   = FindActor("Matthew", "McConaughey"),
                MovieId = FindMovie("Interstellar", 2014).Id,
                Movie   = FindMovie("Interstellar", 2014)
            };

            _context.ActorMovies.Add(interstellarMcConaughey);

            //Once Upon A Time In Hollywood
            ActorMovie hollywoodDiCaprio = new ActorMovie
            {
                ActorId = FindActor("Leonardo", "Di Caprio").Id,
                Actor   = FindActor("Leonardo", "Di Caprio"),
                MovieId = FindMovie("Once Upon a Time In Hollywood", 2019).Id,
                Movie   = FindMovie("Once Upon a Time In Hollywood", 2019)
            };

            _context.ActorMovies.Add(hollywoodDiCaprio);

            ActorMovie hollywoodPitt = new ActorMovie
            {
                ActorId = FindActor("Brad", "Pitt").Id,
                Actor   = FindActor("Brad", "Pitt"),
                MovieId = FindMovie("Once Upon a Time In Hollywood", 2019).Id,
                Movie   = FindMovie("Once Upon a Time In Hollywood", 2019)
            };

            _context.ActorMovies.Add(hollywoodPitt);

            ActorMovie hollywoodRobbie = new ActorMovie
            {
                ActorId = FindActor("Margot", "Robbie").Id,
                Actor   = FindActor("Margot", "Robbie"),
                MovieId = FindMovie("Once Upon a Time In Hollywood", 2019).Id,
                Movie   = FindMovie("Once Upon a Time In Hollywood", 2019)
            };

            _context.ActorMovies.Add(hollywoodRobbie);

            //The Dark Knight
            ActorMovie darkKnightBale = new ActorMovie
            {
                ActorId = FindActor("Christian", "Bale").Id,
                Actor   = FindActor("Christian", "Bale"),
                MovieId = FindMovie("The Dark Knight", 2008).Id,
                Movie   = FindMovie("The Dark Knight", 2008)
            };

            _context.ActorMovies.Add(darkKnightBale);

            //Shutter Island
            ActorMovie shutterDiCaprio = new ActorMovie
            {
                ActorId = FindActor("Leonardo", "Di Caprio").Id,
                Actor   = FindActor("Leonardo", "Di Caprio"),
                MovieId = FindMovie("Shutter Island", 2010).Id,
                Movie   = FindMovie("Shutter Island", 2010)
            };

            _context.ActorMovies.Add(shutterDiCaprio);

            //Fight Club
            ActorMovie fightClubPitt = new ActorMovie
            {
                ActorId = FindActor("Brad", "Pitt").Id,
                Actor   = FindActor("Brad", "Pitt"),
                MovieId = FindMovie("Fight Club", 1999).Id,
                Movie   = FindMovie("Fight Club", 1999)
            };

            _context.ActorMovies.Add(fightClubPitt);

            //Zodiac
            ActorMovie zodiacGyllenhaal = new ActorMovie
            {
                ActorId = FindActor("Jake", "Gyllenhaal").Id,
                Actor   = FindActor("Jake", "Gyllenhaal"),
                MovieId = FindMovie("Zodiac", 2007).Id,
                Movie   = FindMovie("Zodiac", 2007)
            };

            _context.ActorMovies.Add(zodiacGyllenhaal);

            //The Audition
            ActorMovie auditionPitt = new ActorMovie
            {
                ActorId = FindActor("Brad", "Pitt").Id,
                Actor   = FindActor("Brad", "Pitt"),
                MovieId = FindMovie("The Audition", 2015).Id,
                Movie   = FindMovie("The Audition", 2015)
            };

            _context.ActorMovies.Add(auditionPitt);

            ActorMovie auditionDiCaprio = new ActorMovie
            {
                ActorId = FindActor("Leonardo", "Di Caprio").Id,
                Actor   = FindActor("Leonardo", "Di Caprio"),
                MovieId = FindMovie("The Audition", 2015).Id,
                Movie   = FindMovie("The Audition", 2015)
            };

            _context.ActorMovies.Add(auditionDiCaprio);

            //Se7en
            ActorMovie sevenPitt = new ActorMovie
            {
                ActorId = FindActor("Brad", "Pitt").Id,
                Actor   = FindActor("Brad", "Pitt"),
                MovieId = FindMovie("Se7en", 1995).Id,
                Movie   = FindMovie("Se7en", 1995)
            };

            _context.ActorMovies.Add(sevenPitt);

            _context.ActorMovies.AddRange(new List <ActorMovie>
            {
                americanHustleLawrence,
                americanHustleCooper,
                americanHustleBale,
                silverCooper,
                silverLawrence,
                interstellarMcConaughey,
                shutterDiCaprio,
                auditionDiCaprio,
                auditionPitt,
                zodiacGyllenhaal,
                wolfDiCaprio,
                wolfMcConaughey,
                hollywoodDiCaprio,
                hollywoodPitt,
                hollywoodRobbie,
                darkKnightBale,
                fightClubPitt,
                sevenPitt
            });

            //Favorites
            //=========

            Favorite favorite = new Favorite
            {
                UserId  = FindUser("andreas.holvoet").Id,
                User    = FindUser("andreas.holvoet"),
                MovieId = FindMovie("Once Upon a Time In Hollywood", 2019).Id,
                Movie   = FindMovie("Once Upon a Time In Hollywood", 2019)
            };

            _context.Favorites.Add(favorite);

            Favorite favorite2 = new Favorite
            {
                UserId  = FindUser("andreas.holvoet").Id,
                User    = FindUser("andreas.holvoet"),
                MovieId = FindMovie("Se7en", 1995).Id,
                Movie   = FindMovie("Se7en", 1995)
            };

            _context.Favorites.Add(favorite2);

            Favorite favorite3 = new Favorite
            {
                UserId  = FindUser("thomas.verstraete").Id,
                User    = FindUser("thomas.verstraete"),
                MovieId = FindMovie("American Hustle", 2013).Id,
                Movie   = FindMovie("American Hustle", 2013)
            };

            _context.Favorites.Add(favorite3);

            Favorite favorite4 = new Favorite
            {
                UserId  = FindUser("thomas.verstraete").Id,
                User    = FindUser("thomas.verstraete"),
                MovieId = FindMovie("Se7en", 1995).Id,
                Movie   = FindMovie("Se7en", 1995)
            };

            _context.Favorites.Add(favorite4);

            _context.Favorites.AddRange(new List <Favorite>
            {
                favorite,
                favorite2,
                favorite3,
                favorite4
            });

            //UserFollower
            //============

            UserFollower userFollower = new UserFollower
            {
                //thomas volgt andreas
                FollowingId = FindUser("andreas.holvoet").Id,
                Following   = FindUser("andreas.holvoet"),
                FollowerId  = FindUser("thomas.verstraete").Id,
                Follower    = FindUser("thomas.verstraete")
            };

            _context.UserFollowers.Add(userFollower);

            _context.UserFollowers.AddRange(new List <UserFollower>
            {
                userFollower
            });

            _context.SaveChanges();

            //Reviews
            //=========
            Review review1 = new Review
            {
                Description = "Brilliant movie, absolutly loved it!",
                Date        = DateTime.Now,
                Rating      = 8,
                UserId      = FindUser("thomas.verstraete").Id,
                User        = FindUser("thomas.verstraete"),
                MovieId     = FindMovie("American Hustle", 2013).Id,
                Movie       = FindMovie("American Hustle", 2013)
            };

            _context.Reviews.Add(review1);

            Review review2 = new Review
            {
                Description = "Not my favorite, but still a very good effort.",
                Date        = DateTime.Now,
                Rating      = 6,
                UserId      = FindUser("thomas.verstraete").Id,
                User        = FindUser("thomas.verstraete"),
                MovieId     = FindMovie("Fight Club", 1999).Id,
                Movie       = FindMovie("Fight Club", 1999)
            };

            _context.Reviews.Add(review2);

            Review review3 = new Review
            {
                Description = "Absolute rubbish, how did this win an oscar?",
                Date        = DateTime.Now,
                Rating      = 2,
                UserId      = FindUser("*****@*****.**").Id,
                User        = FindUser("*****@*****.**"),
                MovieId     = FindMovie("Fight Club", 1999).Id,
                Movie       = FindMovie("Fight Club", 1999)
            };

            _context.Reviews.Add(review3);

            Review review4 = new Review
            {
                Description = "How many times can one man curse?",
                Date        = DateTime.Now,
                Rating      = 7,
                UserId      = FindUser("*****@*****.**").Id,
                User        = FindUser("*****@*****.**"),
                MovieId     = FindMovie("The Wolf of Wall Street", 2013).Id,
                Movie       = FindMovie("The Wolf of Wall Street", 2013)
            };

            _context.Reviews.Add(review4);

            Review review5 = new Review
            {
                Description = "Best movie made, ever",
                Date        = DateTime.Now,
                Rating      = 10,
                UserId      = FindUser("*****@*****.**").Id,
                User        = FindUser("*****@*****.**"),
                MovieId     = FindMovie("The Dark Knight", 2008).Id,
                Movie       = FindMovie("The Dark Knight", 2008)
            };

            _context.Reviews.Add(review5);

            _context.SaveChanges();
        }
Пример #24
0
        private static void RegisterActorToMovie()
        {
            {
                bool shouldAbort = false;
                do
                {
                    Clear();

                    WriteLine("Skådespelare (personnr):");
                    string socialSecurityNumber = ReadLine();
                    WriteLine();
                    Actor actor = Context.Actor.FirstOrDefault(x => x.SocialSecurityNumber == socialSecurityNumber);

                    WriteLine("Film (titel):");
                    string title = ReadLine();
                    Movie  movie = Context.Movie.FirstOrDefault(x => x.Title == title);
                    WriteLine();
                    WriteLine("Är detta korrekt? (J)a eller (N)ej");

                    bool hasInvalidInput = true;

                    do
                    {
                        ConsoleKeyInfo keyPressed = ReadKey(true);
                        switch (keyPressed.Key)
                        {
                        case ConsoleKey.J:
                            hasInvalidInput = false;
                            shouldAbort     = true;
                            Clear();
                            List <ActorMovie> actorMovies = Context.ActorMovie.ToList();

                            if (actorMovies != null)
                            {
                                if (actor == null)
                                {
                                    WriteLine("Skådespelare finns ej");
                                    Thread.Sleep(3000);
                                }
                                else if (movie == null)
                                {
                                    WriteLine("Film finns ej");
                                    Thread.Sleep(3000);
                                }
                                else
                                {
                                    ActorMovie actorMovie = new ActorMovie(actor, movie);
                                    Context.ActorMovie.Add(actorMovie);
                                    Context.SaveChanges();
                                    WriteLine("Skådespelare tillagd till film");
                                    Thread.Sleep(3000);
                                }
                            }

                            break;

                        case ConsoleKey.N:
                            hasInvalidInput = false;
                            break;
                        }
                    } while (hasInvalidInput);
                } while (shouldAbort == false);
            }
        }