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")); }
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()); }
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)); }