/// <summary> /// Initializes a new instance of the <see cref="UpdateLinesOnWishlistTest"/> class. /// </summary> public UpdateLinesOnWishlistTest() { this.visitorId = Guid.NewGuid(); this.oldLine = new WishListLine() { ExternalId = "10", Product = new CartProduct { ProductId = "100500", Price = new Price { Amount = 100 } }, Quantity = 12 }; this.lineToUpdate = new WishListLine() { ExternalId = "10", Product = new CartProduct { ProductId = "100500", Price = new Price { Amount = 100 } }, Quantity = 2 }; this.wishlist = new WishList { ExternalId = this.visitorId.ToString(), Lines = new ReadOnlyCollection <WishListLine>(new List <WishListLine> { this.oldLine }) }; this.updatedWishlist = new WishList { ExternalId = this.visitorId.ToString(), Lines = new ReadOnlyCollection <WishListLine>(new List <WishListLine> { this.lineToUpdate }) }; this.request = new UpdateWishListLinesRequest(this.wishlist, new[] { this.lineToUpdate }); this.result = new UpdateWishListLinesResult(); this.args = new ServicePipelineArgs(this.request, this.result); this.client = Substitute.For <IWishlistsServiceChannel>(); var clientFactory = Substitute.For <ServiceClientFactory>(); clientFactory.CreateClient <IWishlistsServiceChannel>(Arg.Any <string>(), Arg.Any <string>()).Returns(this.client); this.processor = new UpdateLinesOnWishlist { ClientFactory = clientFactory }; }
/// <summary> /// Updates the wish list lines. /// </summary> /// <param name="storefront"> /// The storefront. /// </param> /// <param name="userId"> /// The user Id. /// </param> /// <param name="wishListId"> /// The wish list identifier. /// </param> /// <param name="lines"> /// The lines. /// </param> /// <returns> /// The manager response with the wish list as the result. /// </returns> public virtual ManagerResponse <UpdateWishListLinesResult, WishList> UpdateWishListLines([NotNull] CommerceStorefront storefront, [NotNull] string userId, string wishListId, IEnumerable <WishListLine> lines) { Assert.ArgumentNotNull(storefront, "storefront"); Assert.ArgumentNotNull(lines, "lines"); Assert.ArgumentNotNullOrEmpty(wishListId, "wishListId"); var request = new UpdateWishListLinesRequest(new WishList { UserId = userId, CustomerId = userId, ExternalId = wishListId, ShopName = storefront.ShopName }, lines); var result = this.WishListServiceProvider.UpdateWishListLines(request); if (result.Success && result.WishList != null) { this.PopulateStockInformation(storefront, result.WishList); } result.WriteToSitecoreLog(); return(new ManagerResponse <UpdateWishListLinesResult, WishList>(result, result.WishList)); }
/// <summary> /// Updates the wish list lines. /// </summary> /// <param name="storefront">The storefront.</param> /// <param name="visitorContext">The visitor context.</param> /// <param name="wishListId">The wish list identifier.</param> /// <param name="lines">The lines.</param> /// <returns>The manager response with the wish list as the result.</returns> public virtual ManagerResponse <UpdateWishListLinesResult, WishList> UpdateWishListLines([NotNull] CommerceStorefront storefront, [NotNull] VisitorContext visitorContext, string wishListId, IEnumerable <WishListLine> lines) { Assert.ArgumentNotNull(storefront, "storefront"); Assert.ArgumentNotNull(visitorContext, "visitorContext"); Assert.ArgumentNotNull(lines, "lines"); Assert.ArgumentNotNullOrEmpty(wishListId, "wishListId"); var request = new UpdateWishListLinesRequest(new WishList { UserId = visitorContext.UserId, CustomerId = visitorContext.UserId, ExternalId = wishListId, ShopName = storefront.ShopName }, lines); var result = this.WishListServiceProvider.UpdateWishListLines(request); if (result.Success && result.WishList != null) { this.PopulateStockInformation(storefront, result.WishList); } else if (!result.Success) { Helpers.LogSystemMessages(result.SystemMessages, result); } return(new ManagerResponse <UpdateWishListLinesResult, WishList>(result, result.WishList)); }
/// <summary> /// Updates the wish list lines. /// </summary> /// <param name="storefront">The storefront.</param> /// <param name="visitorContext">The visitor context.</param> /// <param name="wishListId">The wish list identifier.</param> /// <param name="lines">The lines.</param> /// <returns>The manager response with the wish list as the result.</returns> public virtual ManagerResponse<UpdateWishListLinesResult, WishList> UpdateWishListLines([NotNull] CommerceStorefront storefront, [NotNull] VisitorContext visitorContext, string wishListId, IEnumerable<WishListLine> lines) { Assert.ArgumentNotNull(storefront, "storefront"); Assert.ArgumentNotNull(visitorContext, "visitorContext"); Assert.ArgumentNotNull(lines, "lines"); Assert.ArgumentNotNullOrEmpty(wishListId, "wishListId"); var request = new UpdateWishListLinesRequest(new WishList { UserId = visitorContext.UserId, CustomerId = visitorContext.UserId, ExternalId = wishListId, ShopName = storefront.ShopName }, lines); var result = this.WishListServiceProvider.UpdateWishListLines(request); if (result.Success && result.WishList != null) { this.PopulateStockInformation(storefront, result.WishList); } else if (!result.Success) { Helpers.LogSystemMessages(result.SystemMessages, result); } return new ManagerResponse<UpdateWishListLinesResult, WishList>(result, result.WishList); }