public async Task <IActionResult> Create([Bind("SheetMusicTutorId,SheetMusicId,TutorId,AmountLoaned")] SheetMusicTutor sheetMusicTutor) { sheetMusicTutor.DateLoaned = DateTime.Now; SheetMusic sm = await _context.SheetMusic.FirstOrDefaultAsync(s => s.SheetMusicId == sheetMusicTutor.SheetMusicId); sm.Amount -= sheetMusicTutor.AmountLoaned; if (sm.Amount >= 0) { if (ModelState.IsValid) { _context.Update(sm); _context.Add(sheetMusicTutor); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } } else { ViewData["Error"] = "Not enough copies to loan. Can only loan out copies in stock."; } List <SheetMusic> sheetMusic = _context.SheetMusic.ToList(); List <SheetMusicViewModel> sms = sheetMusic.Select(s => new SheetMusicViewModel { id = s.SheetMusicId, name = s.Title + " (" + s.Composer + ") - Quantity: " + (sm.Amount += sheetMusicTutor.AmountLoaned) }).ToList(); ViewData["SheetMusic"] = new SelectList(sms, "id", "name"); List <Tutor> tutors = _context.Tutor.Include(a => a.Staff.Person).ToList(); List <TutorViewModel> t = tutors.Select(s => new TutorViewModel { id = s.TutorId, name = s.Staff.Person.FirstName + " " + s.Staff.Person.LastName }).ToList(); ViewData["Tutor"] = new SelectList(t, "id", "name"); return(View(sheetMusicTutor)); }
public async Task <IActionResult> Edit(int id, [Bind("SheetMusicTutorId,SheetMusicId,TutorId,AmountLoaned")] SheetMusicTutor smt) { SheetMusicTutor sheetMusicTutor = await _context.SheetMusicTutor.FirstOrDefaultAsync(s => s.SheetMusicTutorId == id); sheetMusicTutor.DateReturned = DateTime.Now; SheetMusic sm = await _context.SheetMusic.FirstOrDefaultAsync(s => s.SheetMusicId == sheetMusicTutor.SheetMusicId); sm.Amount += sheetMusicTutor.AmountLoaned; if (id != sheetMusicTutor.SheetMusicTutorId) { return(NotFound()); } if (ModelState.IsValid) { try { _context.Update(sheetMusicTutor); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!SheetMusicTutorExists(sheetMusicTutor.SheetMusicTutorId)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } ViewData["SheetMusicId"] = new SelectList(_context.SheetMusic, "SheetMusicId", "SheetMusicId", sheetMusicTutor.SheetMusicId); ViewData["TutorId"] = new SelectList(_context.Tutor, "TutorId", "TutorId", sheetMusicTutor.TutorId); return(View(sheetMusicTutor)); }