public IActionResult Borrow(MovieBorrowBindingModel movieBorrowBindingModel) { int id = int.Parse(this.HttpContext.Request.Path.Value.Split("/").Last()); Movie movie = context.Movies.Find(id); if (ModelState.IsValid) { Borrower borrower = null; if (context.Borrowers.Any(b => b.Name == movieBorrowBindingModel.Name && b.Address == movieBorrowBindingModel.Address)) { borrower = context .Borrowers .FirstOrDefault(b => b.Name == movieBorrowBindingModel.Name && b.Address == movieBorrowBindingModel.Address); } else { borrower = new Borrower { Name = movieBorrowBindingModel.Name, Address = movieBorrowBindingModel.Address }; context.Borrowers.Add(borrower); context.SaveChanges(); } BorrowersMovies borrowersMovies = new BorrowersMovies { Movie = movie, MovieId = movie.Id, BorrowerId = borrower.Id, Borrower = borrower, StartDate = movieBorrowBindingModel.StartDate, EndDate = movieBorrowBindingModel.EndDate }; context.BorrowersMovies.Add(borrowersMovies); context.SaveChanges(); context.Borrowers.Update(borrower); context.SaveChanges(); movie.Status = "Borrowed"; movie.Borrowers.Add(borrowersMovies); context.Movies.Update(movie); context.SaveChanges(); return(RedirectToPage("/Index")); } return(View(movie)); }
public IActionResult Borrow(BorrowMovieBindingModel model) { if (!this.ModelState.IsValid) { return(this.View()); } var movie = this.context .Movies .FirstOrDefault(m => m.Id == model.Id); if (movie == null) { return(this.RedirectToAction("All")); } var borrower = this.context .Borrowers .FirstOrDefault(b => b.Name == model.Borrower); if (borrower == null) { return(this.View()); } var borrowerMovie = new BorrowersMovies { MovieId = model.Id, BorrowerId = borrower.Id }; borrower.BorrowedMovies.Add(borrowerMovie); movie.Status = "Borrowed"; var movieRecord = new MoviesRecords { MovieId = model.Id, Record = new Record { StartDate = model.StartDate, EndDate = model.EndDate } }; movie.Records.Add(movieRecord); this.context.SaveChanges(); return(this.RedirectToAction("All")); }