public async Task <IActionResult> Edit(long id, [Bind("MovieId,FilmMemberId,FilmRoleId")] MovieCrewMember movieCrewMember)
        {
            if (id != movieCrewMember.MovieId)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(movieCrewMember);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!MovieCrewMemberExists(movieCrewMember.MovieId))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            ViewData["FilmMemberId"] = new SelectList(_context.FilmMember, "Id", "FirstName", movieCrewMember.FilmMemberId);
            ViewData["FilmRoleId"]   = new SelectList(_context.FilmRole, "Id", "RoleName", movieCrewMember.FilmRoleId);
            ViewData["MovieId"]      = new SelectList(_context.Movie, "Id", "Title", movieCrewMember.MovieId);
            return(View(movieCrewMember));
        }
        public async Task GetCreditsAsync_ReturnsCrewMembers()
        {
            const int movieIdRunLolaRun = 104;

            ApiQueryResponse <MovieCredit> response = await _api.GetCreditsAsync(movieIdRunLolaRun);

            ApiResponseUtil.AssertErrorIsNull(response);

            MovieCredit credit = response.Item;

            MovieCrewMember director = credit.CrewMembers.Single(x => x.Job == "Director");

            Assert.AreEqual(1071, director.PersonId);
            Assert.AreEqual("52fe4218c3a36847f80038ab", director.CreditId);
            Assert.AreEqual("Directing", director.Department);
            Assert.AreEqual("Tom Tykwer", director.Name);

            foreach (MovieCrewMember crewMember in credit.CrewMembers)
            {
                Assert.IsTrue(crewMember.PersonId > 0);
                Assert.IsFalse(string.IsNullOrWhiteSpace(crewMember.CreditId));
                Assert.IsFalse(string.IsNullOrWhiteSpace(crewMember.Department));
                Assert.IsFalse(string.IsNullOrWhiteSpace(crewMember.Job));
                Assert.IsFalse(string.IsNullOrWhiteSpace(crewMember.Name));
            }
        }
        public async Task <IActionResult> Create([Bind("MovieId,FilmMemberId,FilmRoleId")] MovieCrewMember movieCrewMember)
        {
            if (ModelState.IsValid)
            {
                _context.Add(movieCrewMember);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            ViewData["FilmMemberId"] = new SelectList(_context.FilmMember, "Id", "FirstName", movieCrewMember.FilmMemberId);
            ViewData["FilmRoleId"]   = new SelectList(_context.FilmRole, "Id", "RoleName", movieCrewMember.FilmRoleId);
            ViewData["MovieId"]      = new SelectList(_context.Movie, "Id", "Title", movieCrewMember.MovieId);
            return(View(movieCrewMember));
        }
        public IActionResult EditDirectors(int id, MovieViewViewModel model)
        {
            Movie movie = _database.Movies.FirstOrDefault(a => a.Id == id);

            List <MovieCrewMember> DirectorsFromDatabase = _database.MovieCrewMember.Where(a => a.MovieId == id && a.MemberRole == MovieCrewMember.Role.Director).ToList();

            _database.MovieCrewMember.RemoveRange(DirectorsFromDatabase);

            List <MovieCrewMember> BothFromDatabase = _database.MovieCrewMember.Where(a => a.MovieId == id && a.MemberRole == MovieCrewMember.Role.Both).ToList();

            foreach (var both in BothFromDatabase)
            {
                both.MemberRole = MovieCrewMember.Role.Actor;
            }

            _database.SaveChanges();

            if (model.ActorsString != null)
            {
                string[] directors = model.DirectorsString.Split(",&nbsp;");

                foreach (var directorString in directors)
                {
                    CrewMember crewMember = new CrewMember();

                    if (!_database.CrewMembers.Any(a => a.Name == directorString))
                    {
                        crewMember.Name = directorString;
                        _database.CrewMembers.Add(crewMember);
                        _database.SaveChanges();
                    }
                    else
                    {
                        crewMember = _database.CrewMembers.FirstOrDefault(a => a.Name == directorString);
                    }

                    _database.SaveChanges();

                    MovieCrewMember movieCrewMember = new MovieCrewMember();

                    if (!_database.MovieCrewMember.Any(a => a.MovieId == movie.Id && a.CrewMemberId == crewMember.Id))
                    {
                        movieCrewMember.MovieId      = movie.Id;
                        movieCrewMember.CrewMemberId = crewMember.Id;
                        movieCrewMember.MemberRole   = MovieCrewMember.Role.Director;
                    }
                    else
                    {
                        movieCrewMember.MemberRole = MovieCrewMember.Role.Both;
                    }


                    _database.MovieCrewMember.Add(movieCrewMember);
                }
            }


            _database.SaveChanges();


            return(RedirectToAction("View", "Movie", new { Id = id }));
        }
Beispiel #5
0
        public async Task <IActionResult> Create(MovieCreateViewModel model)
        {
            if (!TryValidateModel(model))
            {
                return(View(model));
            }

            Movie movie = new Movie()
            {
                Title       = model.Title,
                Description = model.Description,
                PlayTime    = new TimeSpan(model.PlayTimeHours, model.PlayTimeMinutes, 0),
                ReleaseDate = model.ReleaseDate
            };

            using (var memoryStream = new MemoryStream())
            {
                try
                {
                    await model.Photo.CopyToAsync(memoryStream);
                }
                catch { }

                movie.Photo = memoryStream.ToArray();

                _database.Movies.Add(movie);
                _database.SaveChanges();
            }
            if (model.Genre != null)
            {
                string[] genres = model.Genre.Split(",");

                foreach (var genre in genres)
                {
                    MovieGenre movieGenre = _database.MovieGenres.FirstOrDefault(a => a.Name == genre);
                    _database.MovieGenreMovies.Add(new MovieGenreMovie {
                        MovieGenreId = movieGenre.Id, MovieId = movie.Id
                    });
                }
            }

            _database.SaveChanges();

            if (model.Actors != null)
            {
                string[] actors = model.Actors.Split(",");

                foreach (var Actor in actors)
                {
                    CrewMember crewMember = new CrewMember();
                    if (!_database.CrewMembers.Any(a => a.Name == Actor))
                    {
                        crewMember.Name = Actor;
                        _database.CrewMembers.Add(crewMember);
                        _database.SaveChanges();
                    }
                    else
                    {
                        crewMember = _database.CrewMembers.FirstOrDefault(a => a.Name == Actor);
                    }

                    _database.SaveChanges();

                    MovieCrewMember movieCrewMember = new MovieCrewMember()
                    {
                        MovieId      = movie.Id,
                        CrewMemberId = crewMember.Id,
                        MemberRole   = MovieCrewMember.Role.Actor
                    };

                    _database.MovieCrewMember.Add(movieCrewMember);
                }
            }

            _database.SaveChanges();

            if (model.Directors != null)
            {
                string[] directors = model.Directors.Split(",");

                foreach (var Director in directors)
                {
                    CrewMember crewMember = new CrewMember();
                    if (!_database.CrewMembers.Any(a => a.Name == Director))
                    {
                        crewMember.Name = Director;
                        _database.CrewMembers.Add(crewMember);
                        _database.SaveChanges();
                    }
                    else
                    {
                        crewMember = _database.CrewMembers.FirstOrDefault(a => a.Name == Director);
                    }


                    MovieCrewMember movieCrewMember = new MovieCrewMember();

                    if (!_database.MovieCrewMember.Any(a => a.MovieId == movie.Id && a.CrewMemberId == crewMember.Id))
                    {
                        movieCrewMember.MovieId      = movie.Id;
                        movieCrewMember.CrewMemberId = crewMember.Id;
                        movieCrewMember.MemberRole   = MovieCrewMember.Role.Director;
                        _database.MovieCrewMember.Add(movieCrewMember);
                    }
                    else
                    {
                        movieCrewMember            = _database.MovieCrewMember.First(a => a.MovieId == movie.Id && a.CrewMemberId == crewMember.Id);
                        movieCrewMember.MemberRole = MovieCrewMember.Role.Both;
                    }
                }
            }


            _database.SaveChanges();

            return(RedirectToAction("Index"));
        }