public async Task <ActionResult <OrderingDetail> > PostOrderingDetail(OrderingDetail orderingDetail) { _context.OrderingDetail.Add(orderingDetail); await _context.SaveChangesAsync(); return(CreatedAtAction("GetOrderingDetail", new { id = orderingDetail.Id }, orderingDetail)); }
public async Task <IActionResult> PutOrderingDetail(int id, OrderingDetail orderingDetail) { if (id != orderingDetail.Id) { return(BadRequest()); } _context.Entry(orderingDetail).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!OrderingDetailExists(id)) { return(NotFound()); } else { throw; } } return(NoContent()); }
public Guid AddOrderingDetail(AddOrderingDetailCommand command) { string orderingDetailCode = _keyGenerationReportService.GetCode(KeyTypeObjects.OrderDetail).CodeNew; var orderingDetail = new OrderingDetail() { Brand = command.Brand, Color = command.Color, Link = command.Link, LinkUrl = command.LinkUrl, Name = command.Name, Note = command.Note, OrderingDetailId = Guid.NewGuid(), Price = command.Price, ProductCode = command.ProductCode, Quantity = command.Quantity, Size = command.Size, OrderingDetailCode = orderingDetailCode, OrderingId = command.OrderingId }; _orderingDetailService.Insert(orderingDetail); _unitOfWork.SaveChanges(); return orderingDetail.OrderingDetailId; }
public async Task <ActionResult <Ordering> > addToCart(DoOrderModel doOrderModel) { String username = User.Identity.Name; String shopUsername = (await _context.Product.FirstOrDefaultAsync(p => p.Id == doOrderModel.productID)).ShopUsername; var currentOrdering = await _context.Ordering.Include(o => o.OrderingDetail).ThenInclude(od => od.Product).FirstOrDefaultAsync(o => o.Username.Equals(username) && o.ShopUsername.Equals(shopUsername) && o.Status == 0); if (currentOrdering != null) { //get ordering detail via ordering id && product id var currentOrderingDetail = await _context.OrderingDetail.Include(od => od.Product).FirstOrDefaultAsync(od => od.OrderingId == currentOrdering.Id && od.ProductId == doOrderModel.productID); if (currentOrderingDetail != null) { currentOrderingDetail.Count += doOrderModel.count; if (currentOrderingDetail.Count < 0) { currentOrderingDetail.Count = 0; } _context.OrderingDetail.Update(currentOrderingDetail); await _context.SaveChangesAsync(); } else { OrderingDetail detailTemp = new OrderingDetail(); detailTemp.OrderingId = currentOrdering.Id; detailTemp.ProductId = doOrderModel.productID; detailTemp.Product = await _context.Product.Include(p => p.ProductImage).FirstOrDefaultAsync(p => p.Id == doOrderModel.productID); detailTemp.Count = doOrderModel.count; if (detailTemp.Count < 0) { detailTemp.Count = 0; } _context.OrderingDetail.Add(detailTemp); await _context.SaveChangesAsync(); } return(Ok(currentOrdering)); } else { //ADD ORDER Ordering orderingTemp = new Ordering(); orderingTemp.Username = username; orderingTemp.ShopUsername = shopUsername; _context.Ordering.Add(orderingTemp); await _context.SaveChangesAsync(); //ADD ORDER DETAIL OrderingDetail detailTemp = new OrderingDetail(); detailTemp.OrderingId = orderingTemp.Id; detailTemp.ProductId = doOrderModel.productID; detailTemp.Product = await _context.Product.FirstOrDefaultAsync(p => p.Id == doOrderModel.productID); detailTemp.Count = doOrderModel.count; if (detailTemp.Count < 0) { detailTemp.Count = 0; } _context.OrderingDetail.Add(detailTemp); await _context.SaveChangesAsync(); orderingTemp = await _context.Ordering.Include(o => o.OrderingDetail).ThenInclude(od => od.Product).FirstOrDefaultAsync(o => o.Id == orderingTemp.Id); return(Ok(orderingTemp)); } //Ordering orderingTemp = new Ordering(); //orderingTemp.Username = username; //_context.Ordering.Add(ordering); //await _context.SaveChangesAsync(); //return CreatedAtAction("GetOrdering", new { id = ordering.Id }, ordering); }