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