コード例 #1
0
        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);
            }
        }
コード例 #2
0
ファイル: OrderService.cs プロジェクト: gigsaowanee/week1
        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));
        }
コード例 #3
0
ファイル: OrdersController.cs プロジェクト: gigsaowanee/week1
        public async Task <IActionResult> InsertOrderAsync(OrderOrderDetailDTO_ToCreate input)
        {
            var result = await _order.InsertOrder(input);

            return(Ok(result));
        }