public async Task <ActionResult <Nhomsach> > PostNhomsach(Nhomsach nhomsach) { nhomsach.Soluongcon = nhomsach.Soluong; _context.Nhomsach.Add(nhomsach); try { await _context.SaveChangesAsync(); } catch (DbUpdateException) { if (NhomsachExists(nhomsach.Manhomsach)) { return(Conflict()); } else { throw; } } for (int i = 0; i < nhomsach.Soluong; i++) { Sach _sach = new Sach(); _sach.Masach = (string)nhomsach.Manhomsach + i; _sach.Manhomsach = nhomsach.Manhomsach; _sach.Tinhtrangsach = true; _context.Sach.Add(_sach); } await _context.SaveChangesAsync(); return(Ok()); //return CreatedAtAction("GetNhomsach", new { id = nhomsach.Manhomsach }, nhomsach); }
public async Task <IActionResult> PutNhomsach(string id, Nhomsach nhomsach) { if (id != nhomsach.Manhomsach) { return(BadRequest()); } if (nhomsach.Soluong < nhomsach.Soluongcon) { return(BadRequest()); } //tang so luong sach cua nhom sach (nhomsach.soluong) var nhomsachCu = await _context.Nhomsach.FindAsync(nhomsach.Manhomsach); if (nhomsach.Soluong > nhomsachCu.Soluong) { var j = nhomsach.Soluong; for (int i = nhomsachCu.Soluong; i < j; i++) { if (_context.Sach.Any(e => e.Masach == (nhomsach.Manhomsach + i))) { j++; continue; } Sach _sach = new Sach(); _sach.Masach = (string)nhomsach.Manhomsach + i; _sach.Manhomsach = nhomsach.Manhomsach; _sach.Tinhtrangsach = true; _context.Sach.Add(_sach); } nhomsach.Soluongcon = nhomsachCu.Soluongcon + (nhomsach.Soluong - nhomsachCu.Soluong); } _context.Entry(nhomsachCu).State = EntityState.Detached; _context.Entry(nhomsach).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!NhomsachExists(id)) { return(NotFound()); } else { throw; } } return(NoContent()); }