public async Task <IActionResult> InsertOrder(OrderOrderDetailDTO_ToCreate input) { var result = await _order.InsertOrder(input); if (result.IsSuccess) { return(Ok(result)); } else { throw new Exception(result.Message); } }
public async Task <ServiceResponse <OrderDTO_ToReturn> > InsertOrder(OrderOrderDetailDTO_ToCreate input) { var order = new Order(); order.TotalPrice = input.Order.TotalPrice; order.TotalCount = input.Order.TotalCount; order.PaymentType = input.Order.PaymentType; order.OrderStatus = input.Order.OrderStatus; order.OrderDate = DateTime.Now; await _dbContext.Orders.AddAsync(order); await _dbContext.SaveChangesAsync(); foreach (var i in input.OrderDetail) { var checkOrderDetail = await _dbContext.OrderDetails.Where(x => x.ProductId == i.ProductId && x.OrderId == order.Id).FirstOrDefaultAsync(); if (checkOrderDetail == null) { var orderDetail = new OrderDetail(); orderDetail.OrderId = order.Id; orderDetail.ProductId = i.ProductId; orderDetail.QTY = i.QTY; orderDetail.OrderDetailDate = DateTime.Now; await _dbContext.OrderDetails.AddAsync(orderDetail); await _dbContext.SaveChangesAsync(); } else { checkOrderDetail.QTY = checkOrderDetail.QTY + i.QTY; await _dbContext.SaveChangesAsync(); } } var returnOrder = await _dbContext.Orders.Include(x => x.OrderDetail).ThenInclude(x => x.Product).Where(x => x.Id == order.Id).FirstOrDefaultAsync(); var result = _mapper.Map <OrderDTO_ToReturn>(returnOrder); return(ResponseResult.Success(result)); }
public async Task <IActionResult> InsertOrderAsync(OrderOrderDetailDTO_ToCreate input) { var result = await _order.InsertOrder(input); return(Ok(result)); }