예제 #1
0
        public async Task <IActionResult> Delete([FromRoute] Int64 cartItemId)
        {
            var deleted = await _cartItemService.DeleteCartItemAsync(cartItemId);

            if (deleted)
            {
                return(Ok(new SuccessResponse
                {
                    message = "Successfully Deleted",
                    status = Ok().StatusCode
                }));
            }
            return(NotFound(new ErrorResponse
            {
                message = "Not Found",
                status = NotFound().StatusCode
            }));
        }
예제 #2
0
        public async Task <IActionResult> Create([FromBody] CreateOrderRequest orderRequest)
        {
            try
            {
                var order = new Order
                {
                    UserId          = orderRequest.UserId,
                    DeliveryMethod  = orderRequest.DeliveryMethod,
                    PaymentMethod   = orderRequest.PaymentMethod,
                    CouponId        = orderRequest.CouponId,
                    UserAddressesId = orderRequest.UserAddressesId,
                    Status          = 1,
                    CreatedAt       = DateTime.Now
                };

                var AddOrder = await _orderService.CreateOrderAsync(order);

                if (AddOrder == 1)
                {
                    var cartItem = await _cartItemService.GetCartItemAsync(orderRequest.CartId);

                    foreach (var item in cartItem)
                    {
                        var orderItem = new OrderItems
                        {
                            OrderId   = order.Id,
                            ProductId = item.ProductId,
                            Quantity  = item.Quantity,
                            Price     = (item.product.SalePrice != 0 ? item.product.SalePrice : item.product.Price),
                            Total     = (item.product.SalePrice != 0 ? item.product.SalePrice : item.product.Price) * item.Quantity,
                            CreatedAt = DateTime.Now
                        };

                        var addOrderItem = await _orderItemService.CreateOrderItemAsync(orderItem);

                        if (addOrderItem == 1)
                        {
                            await _cartItemService.DeleteCartItemAsync(item.Id);
                        }

                        ProductQuantityMinus(item.ProductId, item.Quantity);
                    }

                    if (orderRequest.CouponId != null)
                    {
                        if (orderRequest.CouponId != 0)
                        {
                            PromoCodeQuantityMinusOne(Convert.ToInt32(orderRequest.CouponId));
                        }
                    }

                    var resp = new
                    {
                        status  = Ok().StatusCode,
                        message = "Successfully add order"
                    };

                    return(Ok(resp));
                }

                return(BadRequest(new
                {
                    status = BadRequest().StatusCode,
                    message = "internal server error"
                }));
            }
            catch (Exception ex)
            {
                return(BadRequest(new
                {
                    status = BadRequest().StatusCode,
                    message = ex.Message
                }));
            }
        }