Ejemplo n.º 1
0
        public ActionResult Edit(CreateOrEditMovieVM createMoiveVM)
        {
            //http://stackoverflow.com/questions/9520111/entity-framework-4-not-saving-my-many-to-many-rows?lq=1
            Movie movieToBeUpdated = Mapper.Map <Movie>(createMoiveVM);

            if (ModelState.IsValid)
            {
                // Must set to modified or adding child records does not set to modified
                db.Entry(movieToBeUpdated).State = EntityState.Modified;

                // Force loading of Actors collection due to lazy loading
                db.Entry(movieToBeUpdated).Collection(st => st.Actors).Load();

                // Clear existing Actors
                movieToBeUpdated.Actors.Clear();

                //http://stackoverflow.com/questions/7478570/entity-framework-code-first-adding-to-many-to-many-relationship-by-id
                foreach (int receivedActorId in createMoiveVM.ReceviedActors)
                {
                    var receivedActor = db.Actors.Find(receivedActorId);
                    movieToBeUpdated.Actors.Add(receivedActor);
                }



                db.SaveChanges();
                return(RedirectToAction("Index"));
            }
            return(View(movieToBeUpdated));
        }
Ejemplo n.º 2
0
        // GET: Movies/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            Movie movie = db.Movies.Find(id);

            if (movie == null)
            {
                return(HttpNotFound());
            }


            CreateOrEditMovieVM model = Mapper.Map <CreateOrEditMovieVM>(movie);

            //model.ActorList = new MultiSelectList(movie.Actors.ToList(), "ID", "ActorName");
            model.ReceviedActors = movie.Actors.Select(a => a.ID).ToArray();
            List <SelectListItem> actorList = new List <SelectListItem>();
            var queryActionList             =

                from d in db.Actors
                select new
            {
                ID        = d.ID,
                ActorName = d.ActorName,
            };

            model.ActorList = new MultiSelectList(queryActionList.ToList(), "ID", "ActorName");


            return(View(model));
        }
Ejemplo n.º 3
0
        // GET: Movies/Create
        public ActionResult Create()
        {
            //ref: http://stackoverflow.com/questions/781987/how-can-i-get-this-asp-net-mvc-selectlist-to-work
            //query all actors, for each of them, assign them to select list item (~ map in js)
            List <SelectListItem> actorList = new List <SelectListItem>();
            var queryActionList             =

                from d in db.Actors
                select new
            {
                ID        = d.ID,
                ActorName = d.ActorName,
            };

            CreateOrEditMovieVM model = new CreateOrEditMovieVM();

            model.ReleaseDate = DateTime.Today;
            model.ActorList   = new MultiSelectList(queryActionList.ToList(), "ID", "ActorName");
            return(View(model));
        }
Ejemplo n.º 4
0
        public ActionResult Create(CreateOrEditMovieVM createMoiveVM)
        {
            Movie newMovie = Mapper.Map <Movie>(createMoiveVM);

            newMovie.Actors = new List <Actor>();

            //http://stackoverflow.com/questions/7478570/entity-framework-code-first-adding-to-many-to-many-relationship-by-id
            foreach (int receivedActorId in createMoiveVM.ReceviedActors)
            {
                var receivedActor = db.Actors.Find(receivedActorId);
                newMovie.Actors.Add(receivedActor);
            }
            if (ModelState.IsValid)
            {
                db.Movies.Add(newMovie);
                try
                {
                    db.SaveChanges();
                }
                catch (DbEntityValidationException dbEx)
                {
                    foreach (var validationErrors in dbEx.EntityValidationErrors)
                    {
                        foreach (var validationError in validationErrors.ValidationErrors)
                        {
                            Trace.TraceInformation("Property: {0} Error: {1}",
                                                   validationError.PropertyName,
                                                   validationError.ErrorMessage);
                        }
                    }
                }

                return(RedirectToAction("Index"));
            }

            return(View(newMovie));
        }