Ejemplo n.º 1
0
 public bool CreateNewOrder(Cart cart)
 {
     using (var uow = new UnitOfWork())
     {
         uow.CartRepository.Insert(cart);
         return uow.Save() > 0;
     }
 }
        public IHttpActionResult Post(OrderVM order)
        {
            Cart cart = new Cart
            {
                Subtotal = order.Subtotal,
                ShippingTotal = order.ShippingTotal,
                TotalAmount = order.Subtotal + order.ShippingTotal,
                Comment = order.Comment,
                OrderDate = DateTime.Now,
                OrderNumber = Guid.NewGuid(),
                Status = CartStatus.Open,
                UserId = 1,
                CartItems = order.Items.Select(ci => new CartItem
                {
                    Quantity = ci.Quantity,
                    Price = ci.Price,
                    ShippingPrice = ci.ShippingPrice,
                    TotalPrice = ci.Price + ci.ShippingPrice,
                    Comment = ci.Comment,
                    ProductId = ci.Id
                }).ToList(),
                ShippingDetail = new ShippingDetail
                {
                    FullName = order.Customer.FullName,
                    Address1 = order.Customer.Address1,
                    Address2 = order.Customer.Address2,
                    City = order.Customer.City,
                    Region = order.Customer.Region,
                    ZipCode = order.Customer.ZipCode,
                    PhoneNumber = order.Customer.Phone,
                    CountryId = order.Customer.Country
                },
                CreditCard = new CreditCard
                {
                    CardNumber = order.Payment.CardNumber,
                    NameOnCard = order.Payment.NameOnCard,
                    Expiration = order.Payment.Expiration
                }
            };

            if (this.cartService.CreateNewOrder(cart))
            {
                return this.StatusCode(HttpStatusCode.Created);
            }

            return this.InternalServerError();
        }