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));
        }
示例#2
0
        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"));
        }