public ActionResult RemoveFromCart(RemoveFromCartDto postModel)
        {
            try
            {
                using (var uow = _uowProvider.Create())
                {
                    var store = CurrentPage.GetStore();
                    var order = _sessionManager.GetOrCreateCurrentOrder(store.Id)
                                .AsWritable(uow)
                                .RemoveOrderLine(postModel.OrderLineId);

                    _orderService.SaveOrder(order);

                    uow.Complete();
                }
            }
            catch (ValidationException ex)
            {
                ModelState.AddModelError("productReference", "Failed to remove cart item");

                return(CurrentUmbracoPage());
            }

            return(RedirectToCurrentUmbracoPage());
        }
Esempio n. 2
0
        public async Task RemoveFromCartAsync(int orderId, RemoveFromCartDto model)
        {
            var orderItems = await GetOrderItems(orderId);

            if (orderItems.Count > 0)
            {
                var removedItems = orderItems
                                   .Join(model.Ids, i => i.ProductId, id => id, (i, im) => i)
                                   .ToList();

                if (removedItems.Count > 0)
                {
                    _context.RemoveRange(removedItems);
                    await _context.SaveChangesAsync();
                }
            }
        }
        public IHttpActionResult RemoveFromCart(string cartItemId, string userId)
        {
            try
            {
                int bookId = 0;
                if (int.TryParse(cartItemId, out bookId))
                {
                    var items             = _itemRepository.All.Where(x => x.BookID == bookId).Select(x => x.Id).ToList();
                    var itemsIntersection = items.Intersect(_shoppingCartRepository.All.Select(x => x.ItemId));

                    foreach (var item in itemsIntersection)
                    {
                        var cartItem = _shoppingCartRepository.All
                                       .Single(p => p.ItemId == item);

                        _shoppingCartRepository.Delete(cartItem);
                    }

                    _unitOfWork.Commit();

                    var removeFromCartDto = new RemoveFromCartDto
                    {
                        Message   = "The item has been removed successfully",
                        DeleteId  = Convert.ToInt32(cartItemId),
                        CartTotal = 15,
                        ItemCount = GetCartTotalItems(userId)
                    };
                }
                else
                {
                    return(BadRequest());
                }
            }
            catch (Exception ex)
            {
                return(BadRequest());
            }
            return(Ok());
        }
Esempio n. 4
0
        public async Task <ActionResult> RemoveFromCart([FromRoute] int id, [FromBody] RemoveFromCartDto model)
        {
            await _orderService.RemoveFromCartAsync(id, model);

            return(NoContent());
        }