Example #1
0
        public IActionResult OnGetAction(Guid customerId, decimal shippingFee, int addressId)
        {
            int a = AddressId;

            DAL.Data.Entities.Order order = new DAL.Data.Entities.Order
            {
                Status       = OrderStatus.Pending,
                OrderDate    = DateTime.Now,
                DeliveryDate = DateTime.Now.AddDays(3),
                ShippingFee  = shippingFee,
                AddressId    = addressId
            };
            _orderRepository.Add(order);
            DAL.Data.Entities.Cart   cart  = _cartRepository.Find(c => c.CustomerId == customerId);
            IEnumerable <CartDetail> items = _cartDetailRepository.GetSome(i => i.CartId == cart.Id);

            foreach (CartDetail item in items)
            {
                OrderItem OrderItem = new OrderItem
                {
                    Quantity = item.Quantity,
                    ItemId   = item.ItemId,
                    OrderId  = order.Id,
                    Amount   = _itemRepository.Find(item.ItemId).Price *item.Quantity
                };
                _orderItemRepository.Add(OrderItem);
            }
            _cartDetailRepository.DeleteRange(items);
            return(RedirectToPage("./Success"));
        }
Example #2
0
        public IActionResult OnGet(decimal shippingFee, int addressId)
        {
            var user = _userManager.GetUserAsync(HttpContext.User).Result;

            //if (user == null || _userRepository.IsAdmin(user))
            //{
            //    return RedirectToPage("/Account/Login", new { area = "Identity", returnUrl = "/Cart/Index" });
            //}
            ShippingFee = shippingFee;
            AddressId   = addressId;
            DAL.Data.Entities.Cart   cart      = _cartRepository.GetCartByCustomerId(user.Id);
            IEnumerable <CartDetail> cartItems = _cartDetailRepository.GetSome(c => c.CartId == cart.Id);

            foreach (CartDetail itemInCart in cartItems)
            {
                Item item = _itemRepository.Find(itemInCart.ItemId);
                CustomerCartViewModel customerCart = new CustomerCartViewModel()
                {
                    CartId   = cart.Id,
                    Image    = item.ProductImages.First().Name,
                    ItemId   = item.Id,
                    ItemName = item.Name,
                    Price    = item.Price,
                    Quantity = itemInCart.Quantity
                };
                customerCart.Subtotal = customerCart.Quantity * customerCart.Price;
                CustomerCartViewModel.Add(customerCart);
            }
            return(Page());
        }
Example #3
0
        public IActionResult OnPostAddToCart([FromBody] CartDetail model)
        {
            if (!ModelState.IsValid)
            {
                //IEnumerable<ModelError> allErrors = ModelState.Values.SelectMany(v => v.Errors);
                return(new BadRequestObjectResult("Đã xãy ra lỗi"));
            }

            var user  = _userManager.GetUserAsync(HttpContext.User).Result;
            var cart  = _cartRepository.GetCartByCustomerId(user.Id);
            var _item = _itemRepository.Find(model.ItemId);

            if (model.Quantity <= 0)
            {
                return(new BadRequestObjectResult("Số lượng sản phẩm không hợp lệ"));
            }

            if (model.Quantity > _item.Quantity)
            {
                return(new BadRequestObjectResult("Số lượng sản phẩm trong giỏ vượt quá số lượng cho phép là: " + _item.Quantity.ToString()));
            }

            if (cart == null)
            {
                var newCart = new DAL.Data.Entities.Cart
                {
                    CustomerId = _userManager.GetUserAsync(HttpContext.User).Result.Id,
                };
                _cartRepository.Add(newCart);

                _cartDetailRepository.Add(new CartDetail
                {
                    CartId   = newCart.Id,
                    ItemId   = model.ItemId,
                    Quantity = model.Quantity
                });
            }
            else
            {
                var  cartDetails = cart.CartDetails.Where(cd => cd.IsDeleted == false);
                bool isMatch     = false;
                foreach (var item in cart.CartDetails)
                {
                    if (item.ItemId == model.ItemId)
                    {
                        item.Quantity = item.IsDeleted == true ? model.Quantity : item.Quantity + model.Quantity;
                        if (_item.Quantity == 0)
                        {
                            return(new BadRequestObjectResult("Sản phẩm đã hết hàng"));
                        }
                        if (item.Quantity > _item.Quantity)
                        {
                            return(new BadRequestObjectResult("Số lượng sản phẩm trong giỏ vượt quá số lượng cho phép là: " + _item.Quantity.ToString()));
                        }
                        item.IsDeleted = false;
                        _cartDetailRepository.Update(item);
                        isMatch = true;
                    }
                }
                if (!isMatch)
                {
                    _cartDetailRepository.Add(new CartDetail
                    {
                        CartId   = cart.Id,
                        ItemId   = model.ItemId,
                        Quantity = model.Quantity
                    });
                }
            }
            return(new OkObjectResult(model));
        }