Esempio n. 1
0
        /// <summary>
        /// Updates the specified cart.
        /// </summary>
        /// <param name="cart">The cart.</param>
        /// <returns>The updated cart if was successful and action status</returns>
        protected ICartResult Update(ICart cart)
        {
            ICartResult readResult = this.Read(cart);

            if (readResult.Status != CartStatus.Success)
            {
                return(readResult);
            }

            IEnumerable <Guid> toUpdate = cart.Products.Select(p => p.Id);

            IEnumerable <IProduct> products = readResult.Cart.Products
                                              .Where(p => !toUpdate.Contains(p.Id))
                                              .Concat(cart.Products.Where(p => p.Amount > 0) ?? new IProduct[0]);

            ICart resultCart = this.CartRepository.Update(new Cart()
            {
                Id       = cart.Id,
                Products = products.ToArray()
            });

            return(new CartResult()
            {
                Cart = resultCart,
                Status = resultCart != null ? CartStatus.Success : CartStatus.RepositoryError
            });
        }
Esempio n. 2
0
        protected IActionResult SubAction(ICart cart, CartAction action)
        {
            ICartResult result = this.CartService.Execute(new CartParameter()
            {
                Cart   = cart,
                Action = action
            });

            return(result.Status == CartStatus.Success ?
                   (result.Cart != null ? new OkObjectResult(new CartViewModel(result.Cart)) :  (IActionResult) new OkResult())  :
                   BadRequestResult(StatusAttribute.GetDescritption(result.Status)));
        }