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