Example #1
0
        public async Task <IActionResult> UpdateReservationForm(int id)
        {
            var reservation = await _dbContext.Reservations.FirstOrDefaultAsync(r => r.Id == id);

            var books = await _dbContext.Books.ToListAsync();

            if (reservation == null)
            {
                return(NotFound());
            }

            var viewModel = new CreateOrUpdateReservationViewModel()
            {
                Reservation = reservation
            };

            books.ForEach(b =>
            {
                viewModel.BookList.Add(new SelectListItem {
                    Value = b.Id.ToString(), Text = b.Title
                });
            });

            return(View("UpdateReservationForm", viewModel));
        }
Example #2
0
        public async Task <IActionResult> CreateReservationForm()
        {
            var viewModel = new CreateOrUpdateReservationViewModel();

            var books = await _dbContext.Books.ToListAsync();

            var users = await _dbContext.Users.ToListAsync();

            books.ForEach(b =>
            {
                viewModel.BookList.Add(new SelectListItem {
                    Value = b.Id.ToString(), Text = b.Title
                });
            });

            users.ForEach(u =>
            {
                viewModel.UserList.Add(new SelectListItem {
                    Value = u.Id, Text = u.UserName
                });
            });

            return(View("CreateReservationForm", viewModel));
        }
Example #3
0
        public async Task <IActionResult> CreateOrUpdateReservation(Reservation reservation)
        {
            var books = await _dbContext.Books.ToListAsync();

            var users = await _dbContext.Users.ToListAsync();

            var viewModel = new CreateOrUpdateReservationViewModel()
            {
                Reservation = new Reservation()
            };

            books.ForEach(b =>
            {
                viewModel.BookList.Add(new SelectListItem {
                    Value = b.Id.ToString(), Text = b.Title
                });
            });

            users.ForEach(u =>
            {
                viewModel.UserList.Add(new SelectListItem {
                    Value = u.Id, Text = u.UserName
                });
            });

            if (reservation.Id == 0)
            {
                var bookFromReservation = books.Where(b => b.Id == reservation.BookId).First();

                if (reservation.RentedBooksNumber > bookFromReservation.NumberOfCopies)
                {
                    if (bookFromReservation.NumberOfCopies == 0)
                    {
                        ModelState.AddModelError("Reservation.RentedBooksNumber", "Nema nijednog primerka");
                        return(View("CreateReservationForm", viewModel));
                    }

                    ModelState.AddModelError("Reservation.RentedBooksNumber", "Izabrali ste više knjiga nego što je dostupno");
                    return(View("CreateReservationForm", viewModel));
                }

                await _dbContext.Reservations.AddAsync(reservation);
            }
            else
            {
                var reservationInDb = await _dbContext.Reservations.FirstAsync(r => r.Id == reservation.Id);

                reservationInDb.BookId          = reservation.BookId;
                reservationInDb.ReservationDate = reservation.ReservationDate;
                reservationInDb.IsAccepted      = reservation.IsAccepted;

                if (reservation.IsAccepted == true)
                {
                    DateTime rentDate   = Convert.ToDateTime(reservation.RentDate);
                    DateTime returnDate = Convert.ToDateTime(reservation.ReturnDate);
                    rentDate                   = DateTime.Now;
                    returnDate                 = rentDate.AddDays(20);
                    reservation.RentDate       = rentDate;
                    reservation.ReturnDate     = returnDate;
                    reservationInDb.RentDate   = reservation.RentDate;
                    reservationInDb.ReturnDate = reservation.ReturnDate;
                }
            }

            await _dbContext.SaveChangesAsync();

            return(RedirectToAction("GetReservations", "Reservations", new { reservation.Id }));
        }