public ActionResult Update([DataSourceRequest] DataSourceRequest request, MovieViewModel movie, MovieCollectionsSubmit collections) { if (ModelState.IsValid) { var currMovie = db.Movies.GetById(movie.Id); currMovie.Title = movie.Title; currMovie.Description = movie.Description; currMovie.Duration = movie.Duration; currMovie.Description = movie.Description; var writers = collections.Writers; var actors = collections.Actors; var directors = collections.Directors; var categories = collections.Categories; currMovie.Writers = AddPeople <Writer>(writers, Type.GetType("Imdb.Models.Writer, IMDB.Models", true)); currMovie.Actors = AddPeople <Actor>(actors, Type.GetType("Imdb.Models.Actor, IMDB.Models", true)); currMovie.Directors = AddPeople <Director>(directors, Type.GetType("Imdb.Models.Director, IMDB.Models", true)); currMovie.Categories = UpdateCategories(currMovie, categories); db.SaveChanges(); movie.WritersAsString = string.Join(", ", currMovie.Writers.Select(x => x.Person.Name)); movie.ActorsAsString = string.Join(", ", currMovie.Actors.Select(x => x.Person.Name)); movie.DirectorsAsString = string.Join(", ", currMovie.Directors.Select(x => x.Person.Name)); movie.CategoriesAsString = string.Join(", ", currMovie.Categories.Select(x => x.Name)); } return(Json(new[] { movie }.ToDataSourceResult(request, ModelState))); }
public ActionResult Create([DataSourceRequest] DataSourceRequest request, MovieViewModel movie, MovieCollectionsSubmit collections) { if (ModelState.IsValid) { var currMovie = new Movie { Title = movie.Title, Description = movie.Description, Duration = movie.Duration, Poster = new Image() { Url = movie.ImageUrl }, }; var writers = collections.Writers; var actors = collections.Actors; var directors = collections.Directors; var categories = collections.Categories; AddPerson(currMovie, writers, Type.GetType("Imdb.Models.Writer, IMDB.Models", true)); AddPerson(currMovie, actors, Type.GetType("Imdb.Models.Actor, IMDB.Models", true)); AddPerson(currMovie, directors, Type.GetType("Imdb.Models.Director, IMDB.Models", true)); foreach (var cat in categories) { var catId = Convert.ToInt32(((string[])cat.First().Value)[0]); currMovie.Categories.Add(db.Categories.GetById(catId)); db.Categories.GetById(catId).Movies.Add(currMovie); } db.Movies.Add(currMovie); db.SaveChanges(); movie.WritersAsString = string.Join(", ", currMovie.Writers.Select(x => x.Person.Name)); movie.ActorsAsString = string.Join(", ", currMovie.Actors.Select(x => x.Person.Name)); movie.DirectorsAsString = string.Join(", ", currMovie.Directors.Select(x => x.Person.Name)); movie.CategoriesAsString = string.Join(", ", currMovie.Categories.Select(x => x.Name)); } return(Json(new[] { movie }.ToDataSourceResult(request, ModelState), JsonRequestBehavior.AllowGet)); }