// GET: Directors/Edit/5

        public ActionResult Edit(int?id)
        {
            if (!id.HasValue)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            var movies = db.Movies.Select(e => new SelectListItem()
            {
                Value = e.Id.ToString(),
                Text  = e.Name
            }).ToList();
            var director = db.Directors.Find(id.Value);
            //List<int> movieIds = db.MovieDirectors.Where(e => e.DirectorId == id.Value).Select(e => e.MovieId).ToList();
            List <int>             _movieIds = director.MovieDirectors.Select(e => e.MovieId).ToList();
            DirectorsEditViewModel model     = new DirectorsEditViewModel();

            model.Director = director;
            model.movieIds = _movieIds;
            model.Movies   = new MultiSelectList(movies, "Value", "Text", model.movieIds);
            return(View("EditNew", model));


            //DirectorsEditViewModel model = new DirectorsEditViewModel()
            //{
            //    Director = director,
            //    Movies = new MultiSelectList(movies, _movieIds),
            //    movieIds = _movieIds
            //};

            //return View(model);
        }
Exemplo n.º 2
0
        //public ActionResult Edit([Bind(Include = "Id,Name,Surname,Retired")] Director director, List<int> selectedIds)
        public ActionResult Edit(DirectorsEditViewModel model)
        {
            if (ModelState.IsValid)
            {
                var director = db.Directors.Find(model.Director.Id);
                director.Name           = model.Director.Name;
                director.Surname        = model.Director.Surname;
                director.Retired        = model.Director.Retired;
                director.MovieDirectors = new List <MovieDirector>();

                //var movieDirectors = db.MovieDirectors.Where(e => e.DirectorId == model.Director.Id).ToList();
                //movieDirectors.ForEach(e => db.Entry(e).State = EntityState.Deleted);

                foreach (var movieDirector in db.MovieDirectors.Where(e => e.DirectorId == director.Id))
                {
                    db.Entry(movieDirector).State = EntityState.Deleted;
                }

                model.moviesIds?.ForEach(e => director.MovieDirectors.Add(new MovieDirector()
                {
                    DirectorId = model.Director.Id, MovieId = e
                }));


                db.Entry(director).State = EntityState.Modified;
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }
            return(View(model.Director));
        }
Exemplo n.º 3
0
 public ActionResult Edit(DirectorsEditViewModel directorsEditViewModel)
 {
     if (ModelState.IsValid)
     {
         var director = db.Directors.Find(directorsEditViewModel.Director.Id);
         director.Name    = directorsEditViewModel.Director.Name;
         director.Surname = directorsEditViewModel.Director.Surname;
         director.Retired = directorsEditViewModel.Director.Retired;
         var movieDirectors = db.MovieDirectors.Where(e => e.DirectorId == director.Id).ToList();
         //var movieDirectors = director.MovieDirectors;
         foreach (var movieDirector in movieDirectors)
         {
             db.MovieDirectors.Remove(movieDirector);
         }
         director.MovieDirectors = directorsEditViewModel.movieIds.Select(e => new MovieDirector()
         {
             DirectorId = director.Id,
             MovieId    = e
         }).ToList();
         db.Entry(director).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(directorsEditViewModel));
 }
Exemplo n.º 4
0
        //public ActionResult Edit([Bind(Include = "Id,Name,Surname,Retired")] Director director, List<int> movieIds)
        //{
        //    if (ModelState.IsValid)
        //    {
        //        var entity = db.Directors.SingleOrDefault(e => e.Id == director.Id);
        //        entity.Name = director.Name;
        //        entity.Retired = director.Retired;
        //        entity.Surname = director.Surname;

        //        entity.MovieDirectors = new List<MovieDirector>(); //yeni liste

        //        var movieDirectors = db.MovieDirectors.Where(e => e.DirectorId == director.Id).ToList();
        //        foreach (var movieDirector in movieDirectors)
        //        {
        //            //db.Entry(movieDirector).State = EntityState.Deleted; //önce eski kayıtları silmek gerekiyor.
        //            db.Entry(movieDirector).State = EntityState.Deleted;
        //        }

        //        foreach (var movieId in movieIds)
        //        {
        //            var movieDirector = new MovieDirector()
        //            {
        //                DirectorId = director.Id,
        //                MovieId = movieId
        //            };
        //            entity.MovieDirectors.Add(movieDirector);
        //        }
        //        db.Entry(entity).State = EntityState.Modified;
        //        db.SaveChanges();
        //        TempData["Info"] = "Record successfully updated to database";
        //        return RedirectToRoute(new { Controller = "Directors", action = "Index" });
        //    }
        //    return View(director);

        //}
        #endregion

        public ActionResult Edit(DirectorsEditViewModel directorEditViewModel)
        {
            if (ModelState.IsValid)
            {
                var director = db.Directors.Find(directorEditViewModel.Director.Id); //director çekiyoruz db contexten aldık
                director.Name    = directorEditViewModel.Director.Name;              //güncellemeler için veri tabanından kayıt çekmek.
                director.Surname = directorEditViewModel.Director.Surname;
                director.Retired = directorEditViewModel.Director.Retired;

                //veri tabınında eskileri temizlemek gerek
                //var movieDirectors = db.MovieDirectors.Where(e => e.DirectorId == director.Id).ToList(); //1.yol
                var movieDirectors = director.MovieDirectors;
                foreach (var movieDirector in movieDirectors.ToList())
                {
                    db.MovieDirectors.Remove(movieDirector);
                }
                //var movieDirectors = db.MovieDirectors.Where(e => e.DirectorId == director.Id).ToList(); //1.yol
                //foreach (var movieDirector in movieDirectors)
                //{
                //    db.MovieDirectors.Remove(movieDirector);
                //}

                //sildikten sonra gelen idlerden moviedirector yapıyor
                director.MovieDirectors = directorEditViewModel.movieIds.Select(e => new MovieDirector()
                {
                    DirectorId = director.Id,
                    MovieId    = e
                }).ToList();

                db.Entry(director).State = EntityState.Modified;
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }
            return(View(directorEditViewModel));
        }
Exemplo n.º 5
0
        // GET: Directors/Edit/5
        //  public ActionResult Edit(int? id) yol 1
        // {
        //yol 1:
        //if (id == null)
        //{
        //    return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
        //}
        //Director director = db.Directors.Find(id);
        //if (director == null)
        //{
        //    return HttpNotFound();
        //}

        //var movies = db.Movies.Select(e => new SelectListItem()
        //{
        //    Value = e.Id.ToString(),
        //    Text = e.Name
        //}).ToList();

        //var model = db.Directors.Find(id.Value);
        //var movieIds = model.MovieDirectors.Select(e => e.MovieId).ToList();
        //ViewData["movies"] = new MultiSelectList(movies, "Value", "Text", movieIds);
        //return View(director);
        //  }

        #endregion


        public ActionResult Edit(int?id)  //yol 2
        {
            if (!id.HasValue)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            var movies = db.Movies.Select(e => new SelectListItem()
            {
                Value = e.Id.ToString(),
                Text  = e.Name
            }).ToList();

            var                    director  = db.Directors.Find(id.Value);
            List <int>             _movieIds = director.MovieDirectors.Select(e => e.MovieId).ToList();
            DirectorsEditViewModel model     = new DirectorsEditViewModel();

            model.Director = director;
            model.movieIds = _movieIds;
            model.Movies   = new MultiSelectList(movies, "Value", "Text", model.movieIds);
            //2.yol
            //DirectorsEditViewModel model = new DirectorsEditViewModel() //model oluşturduk
            //{
            //    Director = director,
            //    Movies = new MultiSelectList(movies, _movieIds), //movieIds i yazılınca seçili olanlar gidecek
            //    //edit olduğu için adamın daha önce seçtiği ıd leride dönmemiz gerek
            //    movieId = _movieIds

            //};
            return(View("EditNew", model));
        }
Exemplo n.º 6
0
        public ActionResult Edit([Bind(Include = "Id,Name,Surname,Retired")] Directors directors, List <int> MovieIds)
        {
            if (ModelState.IsValid)
            {
                // veritabanından parametre olarak gelen id (directors.Id) üzerinden kaydın çekilip bu kaydın güncellenmesi en garanti yöntem
                Directors directorsEntity = db.Directors.Find(directors.Id);

                if (directorsEntity == null)
                {
                    return(HttpNotFound());
                }
                directorsEntity.Name    = directors.Name;
                directorsEntity.Surname = directors.Surname;
                directorsEntity.Retired = directors.Retired;

                // ilişkili tablolarda Director Id'ye göre silme işlemi yapılır...

                List <MovieDirectors> movieDirectorsEntity = db.MovieDirectors
                                                             .Where(movieDirector => movieDirector.DirectorId == directors.Id).ToList();
                db.MovieDirectors.RemoveRange(movieDirectorsEntity);

                // sonra sayfadan gelen verilere göre (MovieIds) ilişkili tablolara bu director için veriler dönüştürülerek ekleme işlemi yapılır...
                directorsEntity.MovieDirectors = MovieIds.Select(movieId => new MovieDirectors()
                {
                    DirectorId = directorsEntity.Id,
                    MovieId    = movieId
                }).ToList();

                db.Entry(directorsEntity).State = EntityState.Modified;
                db.SaveChanges();
                TempData["Successful"] = "Director updated successfully";
                return(RedirectToAction("Index"));
            }
            var        moviesEntity  = db.Movies.ToList();
            List <int> savedMovieIds = directors.MovieDirectors.Select(movieDirector => movieDirector.MovieId).ToList();
            var        viewModel     = new DirectorsEditViewModel()
            {
                Directors             = directors,
                MoviesMultiSelectList = new MultiSelectList(moviesEntity, "Id", "Name",
                                                            MovieIds)
            };

            return(View(viewModel));
        }
Exemplo n.º 7
0
        // GET: Directors/Edit/5
        //public ActionResult Edit(int? id)
        //{
        //    if (id == null)
        //    {
        //        return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
        //    }
        //    Director director = db.Directors.Find(id);
        //    if (director == null)
        //    {
        //        return HttpNotFound();
        //    }

        //    var movies = db.Movies.ToList();
        //    var selectedIds = director.MovieDirectors.Select(e => e.MovieId).ToList();
        //    ViewBag.Movies = new MultiSelectList(movies, "Id", "Name", selectedIds);

        //    return View(director);
        //}


        public ActionResult Edit(int?id)
        {
            if (!id.HasValue)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            DirectorsEditViewModel model = new DirectorsEditViewModel();

            var movies = db.Movies.Select(e => new SelectListItem()
            {
                Text  = e.Name,
                Value = e.Id.ToString()
            });

            model.Director = db.Directors.Find(id.Value);
            List <int> moviesIds = model.Director?.MovieDirectors.Select(e => e.MovieId).ToList();

            model.Movies    = new MultiSelectList(movies, "Value", "Text", moviesIds);
            model.moviesIds = moviesIds;
            return(View("EditNew", model));
        }
Exemplo n.º 8
0
        // GET: Directors/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Directors directors = db.Directors.Find(id);

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

            var        moviesEntity  = db.Movies.ToList();
            List <int> savedMovieIds = directors.MovieDirectors.Select(movieDirector => movieDirector.MovieId).ToList();
            var        viewModel     = new DirectorsEditViewModel()
            {
                Directors             = directors,
                MoviesMultiSelectList = new MultiSelectList(moviesEntity, "Id", "Name",
                                                            savedMovieIds)
            };

            return(View(viewModel));
        }