// GET: Orders/Edit/5 public async Task <IActionResult> Edit(int?id) { if (id == null) { return(NotFound()); } var order = await _context.Orders.FindAsync(id); GearOrderViewModel ViewModel = new GearOrderViewModel(); ViewModel.Order = new Order(); ViewModel.Gear = new Gear(); var gear = await _context.Gears .Include(g => g.Category) .Include(g => g.Condition) .Include(g => g.User) .Include(g => g.Orders) .SingleOrDefaultAsync(m => m.GearId == order.GearId); ViewModel.Gear = gear; ViewModel.Order = order; if (order == null) { return(NotFound()); } ViewData["BorrowerId"] = new SelectList(_context.ApplicationUsers, "Id", "Id", order.BorrowerId); ViewData["GearId"] = new SelectList(_context.Gears, "GearId", "Make", order.GearId); ViewData["RenterId"] = new SelectList(_context.ApplicationUsers, "Id", "Id", order.RenterId); return(View(ViewModel)); }
public async Task <IActionResult> Create(GearOrderViewModel ViewModel) { var gear = await _context.Gears .Include(g => g.Category) .Include(g => g.Condition) .Include(g => g.User) .SingleOrDefaultAsync(m => m.GearId == ViewModel.Order.GearId); ModelState.Remove("Order.RenterId"); var user = await GetCurrentUserAsync(); ViewModel.Order.RenterId = user.Id; ViewModel.Order.BorrowerId = gear.UserId; //order.GearId = ReservedGearId; ViewModel.Order.DateCreated = DateTime.Now; gear.Rented = true; if (ModelState.IsValid) { _context.Update(gear); _context.Add(ViewModel.Order); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(AllRentals))); } ViewData["BorrowerId"] = new SelectList(_context.ApplicationUsers, "Id", "Id", ViewModel.Order.BorrowerId); //ViewData["GearId"] = new SelectList(_context.Gears, "GearId", "Make", order.GearId); return(View(ViewModel)); }
// GET: Rented Out Orders public async Task <IActionResult> RentedOutOrders(int ReservedGearId) { ViewData["BorrowerId"] = new SelectList(_context.ApplicationUsers, "Id", "FirstName"); //ViewBag.gear = _context.Gears.FirstOrDefaultAsync(m => m.GearId == ReservedGearId); GearOrderViewModel ViewModel = new GearOrderViewModel(); ViewModel.Order = new Order(); ViewModel.Gear = new Gear(); var gear = await _context.Gears .Include(g => g.Category) .Include(g => g.Condition) .Include(g => g.User) .SingleOrDefaultAsync(m => m.GearId == ReservedGearId); var order = await _context.Orders .Include(o => o.Borrower) .Include(o => o.Gear) .Include(o => o.Renter) .FirstOrDefaultAsync(m => m.GearId == ReservedGearId); ViewModel.Gear = gear; ViewModel.Order = order; return(View(ViewModel)); }
public async Task <IActionResult> CompleteRentedOutOrders(int id) { var order = await _context.Orders .Include(o => o.Borrower) .Include(o => o.Gear) .Include(o => o.Renter) .FirstOrDefaultAsync(m => m.OrderId == id); var gear = await _context.Gears .Include(g => g.Category) .Include(g => g.Condition) .Include(g => g.User) .SingleOrDefaultAsync(m => m.GearId == order.GearId); var ViewModel = new GearOrderViewModel(); ViewModel.Gear = gear; ViewModel.Order = order; if (id != order.OrderId) { return(NotFound()); } if (ModelState.IsValid) { try { order.Completed = true; gear.Rented = false; _context.Update(gear); _context.Update(order); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!OrderExists(order.OrderId)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } ViewData["BorrowerId"] = new SelectList(_context.ApplicationUsers, "Id", "Id", order.BorrowerId); ViewData["GearId"] = new SelectList(_context.Gears, "GearId", "Make", order.GearId); ViewData["RenterId"] = new SelectList(_context.ApplicationUsers, "Id", "Id", order.RenterId); return(View(ViewModel)); }
// GET: Orders/Create public async Task <IActionResult> Create(int ReservedGearId) { ViewData["BorrowerId"] = new SelectList(_context.ApplicationUsers, "Id", "FirstName"); //ViewBag.gear = _context.Gears.FirstOrDefaultAsync(m => m.GearId == ReservedGearId); GearOrderViewModel ViewModel = new GearOrderViewModel(); ViewModel.Order = new Order(); ViewModel.Gear = new Gear(); var gear = await _context.Gears .Include(g => g.Category) .Include(g => g.Condition) .Include(g => g.User) .SingleOrDefaultAsync(m => m.GearId == ReservedGearId); ViewModel.Gear = gear; ViewModel.Order.GearId = ReservedGearId; ViewModel.Order.PickupDate = DateTime.Now; ViewModel.Order.ReturnDate = DateTime.Now; return(View(ViewModel)); }