public async Task <IActionResult> PostListProductPromotion([FromBody] ListProductPromotion listProductPromotion) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var getCode = await _context.GetTransactionInv .Where(w => w.GoodId == listProductPromotion.GoodId) .GroupBy(g => new { g.GoodCode }) .Select(s => new { s.Key.GoodCode }) .ToListAsync(); var getSubCodePro = await _context.CodePromotion .Where(w => w.SubId == listProductPromotion.SubId) .GroupBy(g => new { g.SubCodePro }) .Select(s => new { s.Key.SubCodePro }) .ToListAsync(); listProductPromotion.GoodCode = getCode[0].GoodCode; listProductPromotion.SubCodePro = getSubCodePro[0].SubCodePro; _context.ListProductPromotion.Add(listProductPromotion); try { await _context.SaveChangesAsync(); } catch (DbUpdateException) { if (ListProductPromotionExists(listProductPromotion.GoodId)) { return(new StatusCodeResult(StatusCodes.Status409Conflict)); } else { throw; } } return(CreatedAtAction("GetListProductPromotion", new { id = listProductPromotion.GoodId }, listProductPromotion)); }
public async Task <IActionResult> PutListProductPromotion([FromRoute] int id, [FromBody] ListProductPromotion listProductPromotion) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (id != listProductPromotion.Id) { return(BadRequest()); } var getCode = await _context.GetTransactionInv .Where(w => w.GoodId == listProductPromotion.GoodId) .GroupBy(g => new { g.GoodCode }) .Select(s => new { s.Key.GoodCode }) .ToListAsync(); var getSubCodePro = await _context.CodePromotion .Where(w => w.SubId == listProductPromotion.SubId) .GroupBy(g => new { g.SubCodePro }) .Select(s => new { s.Key.SubCodePro }) .ToListAsync(); listProductPromotion.GoodCode = getCode[0].GoodCode; listProductPromotion.SubCodePro = getSubCodePro[0].SubCodePro; _context.Entry(listProductPromotion).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!ListProductPromotionExists(id.ToString())) { return(NotFound()); } else { throw; } } return(NoContent()); }