예제 #1
0
        // GET: Carts/Create
        public ActionResult Create()
        {
            //ViewBag.DestinationHairColors = db.HairColors.ToList();
            var haircolor            = db.HairColors.ToList();
            CreateCartViewModel ccvm = new CreateCartViewModel
            {
                HairColors = haircolor
            };

            return(View(ccvm));
        }
        public ActionResult Post([FromBody] CreateCartViewModel cart)
        {
            try
            {
                var resultService = _cartService.Insert(_mapper.Map <Cart>(cart));

                return(StatusCode(201, new { haserror = false, errormessage = "", data = _mapper.Map <ResultCreateCartViewModel>(resultService) }));
            }
            catch (Exception ex)
            {
                return(StatusCode(500, new { haserror = true, errormessage = "Erro interno, favor contactar administrador", data = ex.Message }));
            }
        }
        public HttpResponseMessage CreateOrder(HttpRequestMessage request, [FromBody] CreateCartViewModel parameters)
        {
            OrderResult orderResult = new OrderResult()
            {
                status  = false,
                message = "Có lỗi xảy rả với hệ thống"
            };

            if (parameters == null)
            {
                orderResult.message = "Dữ liệu rỗng.";

                return(request.CreateResponse(HttpStatusCode.OK, orderResult));
            }
            else
            {
                if (parameters.orderViewModel == null || parameters.listcart == null)
                {
                    orderResult.message = "Dữ liệu không hợp lệ.";
                    return(request.CreateResponse(HttpStatusCode.OK, orderResult));
                }
            }

            try
            {
                var order = parameters.orderViewModel;

                var orderNew = new Order();

                orderNew.UpdateOrder(order);

                // var cart = (List<ShoppingCartViewModel>)Session[CommonConstants.SessionCart];
                var cart = parameters.listcart;
                List <OrderDetail> orderDetails = new List <OrderDetail>();
                bool isEnough = true;
                foreach (var item in cart)
                {
                    OrderDetail detail = new OrderDetail();
                    detail.ProductID = item.ID;
                    detail.Quantity  = item.Quantity;
                    detail.Price     = item.Price;


                    if (detail.ProductID == 0)
                    {
                        orderResult.message = "Mã sản phẩm hoặc số lượng không hợp lệ";
                        return(request.CreateResponse(HttpStatusCode.OK, orderResult));
                    }
                    else
                    {
                        if (detail.Quantity == 0)
                        {
                            detail.Quantity = 1;
                        }
                    }

                    orderDetails.Add(detail);

                    isEnough = _productService.SellProduct(detail.ProductID, detail.Quantity);
                    break;
                }
                if (isEnough)
                {
                    var orderReturn = _orderService.Create(ref orderNew, orderDetails);
                    _productService.Save();

                    orderResult.status  = true;
                    orderResult.message = "Đặt hàng thành công";
                    return(request.CreateResponse(HttpStatusCode.OK, orderResult));
                }
                else
                {
                    orderResult.message = "Không đủ hàng.";
                    return(request.CreateResponse(HttpStatusCode.OK, orderResult));
                }
            }
            catch (Exception e)
            {
                orderResult.message = e.ToString();
            }


            return(request.CreateResponse(HttpStatusCode.OK, orderResult));
        }