public ManagerResponse <CartResult, CommerceCart> Reorder(string userId, ReorderInputModel inputModel)
        {
            //Assert.ArgumentNotNull(inputModel, nameof(inputModel));
            //Assert.ArgumentNotNullOrEmpty(inputModel.OrderId, nameof(inputModel.OrderId));

            //var request = new ReorderByCartNameRequest
            //{
            //    CustomerId = userId,
            //    OrderId = inputModel.OrderId,
            //    ReorderLineExternalIds = inputModel.ReorderLineExternalIds,
            //    CartName = CommerceConstants.CartSettings.DefaultCartName,
            //    OrderShippingPreferenceType = ShippingOptionType.ShipToAddress
            //};

            //var result = OrderServiceProvider.Reorder(request);
            //result.WriteToSitecoreLog();
            return(new ManagerResponse <CartResult, CommerceCart>(null, null));
        }
예제 #2
0
        public JsonResult Reorder(ReorderInputModel inputModel)
        {
            try
            {
                Assert.ArgumentNotNull(inputModel, nameof(inputModel));
                var validationResult = this.CreateJsonResult();
                if (validationResult.HasErrors)
                {
                    return(Json(validationResult, JsonRequestBehavior.AllowGet));
                }

                var response = OrderManager.Reorder(CommerceUserContext.Current.UserId, inputModel);
                var result   = new BaseApiModel(response.ServiceProviderResult);
                return(Json(result, JsonRequestBehavior.AllowGet));
            }
            catch (Exception e)
            {
                return(Json(new ErrorApiModel("Reorder", e), JsonRequestBehavior.AllowGet));
            }
        }
예제 #3
0
        public JsonResult Reorder(ReorderInputModel inputModel)
        {
            try
            {
                Assert.ArgumentNotNull(inputModel, "inputModel");
                var validationResult = new BaseJsonResult();

                this.ValidateModel(validationResult);
                if (validationResult.HasErrors)
                {
                    return(Json(validationResult, JsonRequestBehavior.AllowGet));
                }

                var response = this.OrderManager.Reorder(this.CurrentStorefront, this.CurrentVisitorContext, inputModel);
                var result   = new BaseJsonResult(response.ServiceProviderResult);
                return(Json(result, JsonRequestBehavior.AllowGet));
            }
            catch (Exception e)
            {
                CommerceLog.Current.Error("Reorder", this);
                return(Json(new BaseJsonResult("Reorder", e), JsonRequestBehavior.AllowGet));
            }
        }
        /// <summary>
        /// Reorders one or more items from an existing order.
        /// </summary>
        /// <param name="storefront">The storefront context.</param>
        /// <param name="visitorContext">The visitor context.</param>
        /// <param name="inputModel">The reorder input model.</param>
        /// <returns>The result of the operation.</returns>
        public ManagerResponse <CartResult, CommerceCart> Reorder([NotNull] CommerceStorefront storefront, [NotNull] VisitorContext visitorContext, ReorderInputModel inputModel)
        {
            Assert.ArgumentNotNull(storefront, "storefront");
            Assert.ArgumentNotNull(visitorContext, "visitorContext");
            Assert.ArgumentNotNull(inputModel, "inputModel");
            Assert.ArgumentNotNullOrEmpty(inputModel.OrderId, "inputModel.OrderId");

            var request = new ReorderByCartNameRequest()
            {
                CustomerId                  = visitorContext.GetCustomerId(),
                OrderId                     = inputModel.OrderId,
                ReorderLineExternalIds      = inputModel.ReorderLineExternalIds,
                CartName                    = storefront.DefaultCartName,
                OrderShippingPreferenceType = ShippingOptionType.ShipToAddress,
            };

            var cartCache = CommerceTypeLoader.CreateInstance <CartCacheHelper>();

            cartCache.InvalidateCartCache(visitorContext.GetCustomerId());

            var result = this.OrderServiceProvider.Reorder(request);

            if (result.Success && result.Cart != null)
            {
                cartCache.AddCartToCache(result.Cart as CommerceCart);
            }

            Helpers.LogSystemMessages(result.SystemMessages, result);
            return(new ManagerResponse <CartResult, CommerceCart>(result, result.Cart as CommerceCart));
        }