Example #1
0
        public IHttpActionResult Reorder(ReorderRequestViewModel model)
        {
            if (model?.OrderId != null && model.OrderId != Guid.Empty)
            {
                var order = _moduleECommerce.Orders.GetOrder(model.OrderId, Solution.Instance.SystemToken);
                foreach (var orderRow in order.OrderRows)
                {
                    var languageSystemId = _routeRequestLookupInfoAccessor.RouteRequestLookupInfo.Channel.WebsiteLanguageSystemId ?? Guid.Empty;
                    Cart.Add(orderRow.ArticleNumber, orderRow.Quantity, string.Empty, languageSystemId);
                }
            }

            return(Ok(_cartViewModelBuilder.Build(Cart)));
        }
        public async Task <IActionResult> Reorder(ReorderRequestViewModel model)
        {
            var order = _orderService.Get <SalesOrder>(model.OrderId);

            if (order == null || order.Rows.Count == 0)
            {
                ModelState.AddModelError("general", "cart.reorder.orderinvalid".AsWebsiteText());
                return(BadRequest(ModelState));
            }

            var cartContext = HttpContext.GetCartContext();

            foreach (var orderRow in order.Rows.Where(x => x.OrderRowType == OrderRowType.Product))
            {
                await cartContext.AddOrUpdateItemAsync(new AddOrUpdateCartItemArgs()
                {
                    ArticleNumber = orderRow.ArticleNumber,
                    Quantity      = orderRow.Quantity,
                });
            }

            return(Ok(_cartViewModelBuilder.Build(cartContext)));
        }