public ManagerResponse <AddLinesToWishListResult, WishList> AddLinesToWishList(CommerceStorefront storefront, IVisitorContext visitorContext, WishList wishList, IEnumerable <WishListLine> wishListLines) { Assert.ArgumentNotNull(storefront, nameof(storefront)); Assert.ArgumentNotNull(visitorContext, nameof(visitorContext)); Assert.ArgumentNotNull(wishList, nameof(wishList)); Assert.ArgumentNotNull(wishListLines, nameof(wishListLines)); AddLinesToWishListResult wishListResult = _wishListServiceProvider.AddLinesToWishList(new AddLinesToWishListRequest(wishList, wishListLines)); Helpers.LogSystemMessages(wishListResult.SystemMessages, wishListResult); AddLinesToWishListResult serviceProviderResult = wishListResult; return(new ManagerResponse <AddLinesToWishListResult, WishList>(serviceProviderResult, serviceProviderResult.WishList)); }
/// <summary> /// Adds the lines to wish list. /// </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 <AddLinesToWishListResult, WishList> AddLinesToWishList([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 errorResult = new AddLinesToWishListResult() { Success = false }; // Limit the number of wish list lines that can get created. var wishListResult = this.GetWishList(storefront, visitorContext, wishListId); if (!wishListResult.ServiceProviderResult.Success) { wishListResult.ServiceProviderResult.SystemMessages.ToList().ForEach(m => errorResult.SystemMessages.Add(m)); return(new ManagerResponse <AddLinesToWishListResult, WishList>(errorResult, null)); } if (wishListResult.Result.Lines.Count() >= StorefrontManager.CurrentStorefront.MaxNumberOfWishListItems) { var message = StorefrontManager.GetSystemMessage(StorefrontConstants.SystemMessages.MaxWishListLineLimitReached); message = string.Format(CultureInfo.InvariantCulture, message, StorefrontManager.CurrentStorefront.MaxNumberOfWishLists); errorResult.SystemMessages.Add(new Commerce.Services.SystemMessage() { Message = message }); return(new ManagerResponse <AddLinesToWishListResult, WishList>(errorResult, null)); } var request = new AddLinesToWishListRequest(new WishList { UserId = visitorContext.UserId, CustomerId = visitorContext.UserId, ExternalId = wishListId, ShopName = storefront.ShopName }, lines); var result = this.WishListServiceProvider.AddLinesToWishList(request); if (!result.Success) { Helpers.LogSystemMessages(result.SystemMessages, result); } return(new ManagerResponse <AddLinesToWishListResult, WishList>(result, result.WishList)); }
/// <summary> /// Adds the lines to wish list. /// </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 <AddLinesToWishListResult, WishList> AddLinesToWishList([NotNull] CommerceStorefront storefront, [NotNull] string userId, string wishListId, IEnumerable <WishListLine> lines) { Assert.ArgumentNotNull(storefront, "storefront"); Assert.ArgumentNotNull(lines, "lines"); Assert.ArgumentNotNullOrEmpty(wishListId, "wishListId"); var errorResult = new AddLinesToWishListResult() { Success = false }; // Limit the number of wish list lines that can get created. var wishListResult = this.GetWishList(storefront, userId, wishListId); if (!wishListResult.ServiceProviderResult.Success) { wishListResult.ServiceProviderResult.SystemMessages.ToList().ForEach(m => errorResult.SystemMessages.Add(m)); return(new ManagerResponse <AddLinesToWishListResult, WishList>(errorResult, null)); } if (wishListResult.Result.Lines.Count() >= 10) { var message = "You have reached the max limit of wish list items"; message = string.Format(CultureInfo.InvariantCulture, message, 10); errorResult.SystemMessages.Add(new SystemMessage() { Message = message }); return(new ManagerResponse <AddLinesToWishListResult, WishList>(errorResult, null)); } var request = new AddLinesToWishListRequest(new WishList { UserId = userId, CustomerId = userId, ExternalId = wishListId, ShopName = storefront.ShopName }, lines); var result = this.WishListServiceProvider.AddLinesToWishList(request); result.WriteToSitecoreLog(); return(new ManagerResponse <AddLinesToWishListResult, WishList>(result, result.WishList)); }
/// <summary> /// Initializes a new instance of the <see cref="AddLinesToCartTest"/> class. /// </summary> public AddLinesToWishlistTest() { this.visitorId = Guid.NewGuid(); this.wishlist = new WishList { ExternalId = this.visitorId.ToString(), Lines = new ReadOnlyCollection <WishListLine>(new List <WishListLine> { new WishListLine() }) }; this.lineToAdd = new WishListLine() { Product = new CartProduct { ProductId = "100500", Price = new Price { Amount = 100 } }, Quantity = 12 }; this.request = new AddLinesToWishListRequest(this.wishlist, new[] { this.lineToAdd }); this.result = new AddLinesToWishListResult(); 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 AddLinesToWishlist { ClientFactory = clientFactory }; }
/// <summary> /// Adds the lines to wish list. /// </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<AddLinesToWishListResult, WishList> AddLinesToWishList([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 errorResult = new AddLinesToWishListResult() { Success = false }; // Limit the number of wish list lines that can get created. var wishListResult = this.GetWishList(storefront, visitorContext, wishListId); if (!wishListResult.ServiceProviderResult.Success) { wishListResult.ServiceProviderResult.SystemMessages.ToList().ForEach(m => errorResult.SystemMessages.Add(m)); return new ManagerResponse<AddLinesToWishListResult, WishList>(errorResult, null); } if (wishListResult.Result.Lines.Count() >= StorefrontManager.CurrentStorefront.MaxNumberOfWishListItems) { var message = StorefrontManager.GetSystemMessage("MaxWishListLineLimitReached"); message = string.Format(CultureInfo.InvariantCulture, message, StorefrontManager.CurrentStorefront.MaxNumberOfWishLists); errorResult.SystemMessages.Add(new Commerce.Services.SystemMessage() { Message = message }); return new ManagerResponse<AddLinesToWishListResult, WishList>(errorResult, null); } var request = new AddLinesToWishListRequest(new WishList { UserId = visitorContext.UserId, CustomerId = visitorContext.UserId, ExternalId = wishListId, ShopName = storefront.ShopName }, lines); var result = this.WishListServiceProvider.AddLinesToWishList(request); if (!result.Success) { Helpers.LogSystemMessages(result.SystemMessages, result); } return new ManagerResponse<AddLinesToWishListResult, WishList>(result, result.WishList); }