public async Task <IActionResult> PutDattruoc(string mathe, string masach, Dattruoc dattruoc) { if (mathe != dattruoc.Mathe) { return(BadRequest()); } if (masach != dattruoc.Masach) { return(BadRequest()); } var _dattruocCu = await _context.Dattruoc.FindAsync(mathe, masach); dattruoc.Ngaydattruoc = _dattruocCu.Ngaydattruoc; //neu da nhan thi tao ra phieu muon if (dattruoc.Danhan == true) { var _sach = await _context.Sach.FindAsync(dattruoc.Masach); var _nhomsach = await _context.Nhomsach.FindAsync(_sach.Manhomsach); var _theloai = await _context.Theloai.FindAsync(_nhomsach.Matheloai); _sach.Damuon = true; Phieumuon _phieumuon = new Phieumuon(); _phieumuon.Mathe = dattruoc.Mathe; _phieumuon.Masach = dattruoc.Masach; _phieumuon.Ngaymuon = dattruoc.Ngaydattruoc; _phieumuon.Ngayhethan = _phieumuon.Ngaymuon.AddDays(_theloai.Songaymuontoida); _phieumuon.Giahan = false; _phieumuon.Datra = false; _context.Phieumuon.Add(_phieumuon); } _context.Entry(_dattruocCu).State = EntityState.Detached; _context.Entry(dattruoc).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!DattruocExists(mathe, masach)) { return(NotFound()); } else { throw; } } return(NoContent()); }
public async Task <ActionResult <Dattruoc> > PostDattruoc(Dattruoc dattruoc) { var currentUserID = User.Identity.Name; if (dattruoc.Mathe != currentUserID && !User.IsInRole(Role.Admin)) { return(Forbid()); } dattruoc.Ngaydattruoc = DateTime.Now; var _user = await _context.User.FindAsync(dattruoc.Mathe); var _sach = await _context.Sach.FindAsync(dattruoc.Masach); var _nhomsach = await _context.Nhomsach.FindAsync(_sach.Manhomsach); if (_sach.Damuon == true || _sach.Tinhtrangsach == false || _user.Sosachdamuon > 6 || _user.Ngayhethan < DateTime.Now) { return(BadRequest()); } _user.Sosachdamuon++; _sach.Damuon = true; _nhomsach.Soluongcon--; _context.Dattruoc.Add(dattruoc); try { await _context.SaveChangesAsync(); } catch (DbUpdateException) { if (DattruocExists(dattruoc.Mathe, dattruoc.Masach)) { return(Conflict()); } else { throw; } } //return CreatedAtAction("GetDattruoc", new { id = dattruoc.Mathe }, dattruoc); return(Ok()); }