// 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); }
//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)); }
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)); }
//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)); }
// 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)); }
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)); }
// 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)); }
// 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)); }