public ActionResult Create(Movie currMovie) { try { var context = new MovieEntities(); using (context) { var director = GetPeople(currMovie, context, Kind.Director); var maleActor = GetPeople(currMovie, context, Kind.MaleActor); var femaleActor = GetPeople(currMovie, context, Kind.FemaleActor); var movieToAdd = new Movies() { title = currMovie.Title, year = currMovie.Year, directorId = director.id, leadingMaleRoleId = maleActor.id, leadingFemaleRoleId = femaleActor.id }; context.Movies.Add(movieToAdd); context.SaveChanges(); } return View(); } catch { return View("Error"); } }
private Movie GenerateMovieModel(Movies movie) { var movieModel = new Movie() { Id = movie.id, Title = movie.title, Year = movie.year, Director = new MoviesCrud.ViewModels.People() { FirstName = movie.Director.firstName, LastName = movie.Director.lastName, Age = movie.Director.age, Studio = new MoviesCrud.ViewModels.Studio() { Address = movie.Director.Studio.address, Name = movie.Director.Studio.name } }, LeadingFemale = new MoviesCrud.ViewModels.People() { FirstName = movie.LeadingFemale.firstName, LastName = movie.LeadingFemale.lastName, Age = movie.LeadingFemale.age, Studio = new MoviesCrud.ViewModels.Studio() { Address = movie.LeadingFemale.Studio.address, Name = movie.LeadingFemale.Studio.name } }, LeadingMale = new MoviesCrud.ViewModels.People() { FirstName = movie.LeadingMale.firstName, LastName = movie.LeadingMale.lastName, Age = movie.LeadingMale.age, Studio = new MoviesCrud.ViewModels.Studio() { Address = movie.LeadingMale.Studio.address, Name = movie.LeadingMale.Studio.name } } }; return movieModel; }
private Models.People AddPeople(Movie currMovie, MovieEntities context, Models.People people, Kind kind) { ViewModels.People currPeople = GetCurrPeople(currMovie, kind); var currStudio = context.Studio.FirstOrDefault(x => x.name == currPeople.Studio.Name); if (currStudio == null) { currStudio = AddStudio(currPeople.Studio, context); } people = new Models.People() { firstName = currMovie.Director.FirstName, lastName = currMovie.Director.LastName, age = currMovie.Director.Age, studioId = currStudio.id, kindId = (int)kind }; context.People.Add(people); context.SaveChanges(); return people; }
private Models.People GetPeople(Movie currMovie, MovieEntities context, Kind kind) { ViewModels.People currPeople = GetCurrPeople(currMovie, kind); var kindName = Enum.GetName(typeof(Kind), kind); var people = context.People.Include("Kinds") .FirstOrDefault(x => x.Kinds.name == kindName && x.firstName == currPeople.FirstName && x.lastName == currPeople.LastName); if (people == null) { people = this.AddPeople(currMovie, context, people, Kind.Director); } return people; }
private ViewModels.People GetCurrPeople(Movie currMovie, Kind kind) { ViewModels.People currPeople = new ViewModels.People(); switch (kind) { case Kind.Director: currPeople = currMovie.Director; break; case Kind.MaleActor: currPeople = currMovie.LeadingMale; break; default: currPeople = currMovie.LeadingFemale; break; } return currPeople; }
public ActionResult Delete(int id, Movie movie) { try { var context = new MovieEntities(); using (context) { var movieToRemove = context.Movies.Find(id); if (movieToRemove != null) { context.Movies.Remove(movieToRemove); context.SaveChanges(); } } return RedirectToAction("Index"); } catch { return View(); } }
public ActionResult Edit(int id, Movie currMovie) { try { var context = new MovieEntities(); using (context) { var movieToUpdate = context.Movies.Find(id); if (movieToUpdate != null) { var director = GetPeople(currMovie, context, Kind.Director); var maleActor = GetPeople(currMovie, context, Kind.MaleActor); var femaleActor = GetPeople(currMovie, context, Kind.FemaleActor); movieToUpdate.title = currMovie.Title; movieToUpdate.year = currMovie.Year; movieToUpdate.leadingMaleRoleId = maleActor.id; movieToUpdate.leadingFemaleRoleId = femaleActor.id; movieToUpdate.directorId = director.id; context.SaveChanges(); } } return RedirectToAction("Index"); } catch { return View("Error"); } }