public async Task <IActionResult> Rent(RentAddModel model, string returnUrl = null) { ViewData["ReturnUrl"] = returnUrl; if (ModelState.IsValid) { var rentModel = new Rental { RentalStart = model.RentStart, RentalEnd = model.RentEnd, RentalEquipmentID = model.EquipmentID, RentalUserID = model.UserID }; await _context.Rentals.AddAsync(rentModel); var result = await _context.SaveChangesAsync(); var updateEquipData = await _context.Equipments.FirstOrDefaultAsync(x => x.EquipmentID == model.EquipmentID); updateEquipData.RentID = rentModel.RentalID; result = await _context.SaveChangesAsync(); if (result > 0) { return(RedirectToAction("Index", "Rental")); } } return(View(model)); }
public async Task <IActionResult> Rent(int?id, string returnUrl = null) { ViewData["ReturnUrl"] = returnUrl; var user = await _context.Users.FirstOrDefaultAsync(x => x.UserName.Equals(User.Identity.Name)); if (!id.HasValue) { var notRentedEquipmentList = await _context.Equipments.Where(x => !x.RentID.HasValue).ToListAsync(); if (notRentedEquipmentList.Any()) { var rent = new RentAddModel() { UserID = user.Id, Username = User.Identity.Name }; foreach (var item in notRentedEquipmentList) { rent.EquipmentList.Add(new SelectListItem { Value = item.EquipmentID.ToString(), Text = item.EquipmentName }); } return(View(rent)); } return(RedirectToAction("NotAvaliable", "Error")); } else { var equipment = await _context.Equipments.FirstOrDefaultAsync(x => x.EquipmentID == id); var rent = new RentAddModel { UserID = user.Id, Username = User.Identity.Name }; rent.EquipmentList.Add(new SelectListItem { Value = equipment.EquipmentID.ToString(), Text = equipment.EquipmentName }); return(View(rent)); } }