public override void Process(ServicePipelineArgs args) { AddLinesToWishListRequest request; AddLinesToWishListResult result; ValidateArguments <AddLinesToWishListRequest, Commerce.Services.WishLists.AddLinesToWishListResult>(args, out request, out result); try { Assert.IsNotNull((object)request.WishList, "request.WishList"); Assert.IsNotNullOrEmpty(request.WishList.UserId, "request.WishList.UserId"); Assert.IsNotNull((object)request.Lines, "request.Lines"); List <WishListLine> list = request.Lines.ToList <WishListLine>(); list.RemoveAll((Predicate <WishListLine>)(l => { if (l != null) { return(l.Product == null); } return(true); })); request.Lines = (IEnumerable <WishListLine>)list; foreach (WishListLine line in request.Lines) { string lineItemId = line.Product?.ProductId; if (!string.IsNullOrEmpty(lineItemId)) { var command = this.AddWishListLine(request.WishList.UserId, request.WishList.ShopName, request.WishList.ExternalId, lineItemId, line.Quantity, request.WishList.CustomerId, args.Request.CurrencyCode); result.HandleCommandMessages(command); if (!result.Success) { break; } } } Sitecore.Commerce.Plugin.Carts.Cart cart = this.GetWishList(request.WishList.UserId, request.WishList.ShopName, request.WishList.ExternalId, "", args.Request.CurrencyCode); if (cart != null) { result.WishList = TranslateCartToWishListEntity(cart, (ServiceProviderResult)result); result.AddedLines = new System.Collections.ObjectModel.ReadOnlyCollection <WishListLine>(SetListLines(result.WishList)); } } catch (ArgumentException ex) { result.Success = false; result.SystemMessages.Add(CreateSystemMessage((Exception)ex)); } catch (AggregateException ex) { result.Success = false; result.SystemMessages.Add(CreateSystemMessage((Exception)ex)); } base.Process(args); }
public override void Process(ServicePipelineArgs args) { Assert.IsNotNull(args, "args"); Assert.IsNotNull(args.Request, "args.Request"); Assert.IsNotNull(args.Result, "args.Result"); Assert.IsTrue(args.Request is AddPaymentInfoRequest, "args.Request is AddPaymentInfoRequest"); Assert.IsTrue(args.Result is AddPaymentInfoResult, "args.Result is AddPaymentInfoResult"); var request = (AddPaymentInfoRequest)args.Request; var result = (AddPaymentInfoResult)args.Result; Assert.IsNotNull(request.Cart, "request.Cart"); Assert.IsNotNull(request.Payments, "request.Payments"); Cart cart = request.Cart; Container container = GetContainer(cart.ShopName, cart.UserId, cart.CustomerId, "", args.Request.CurrencyCode, new DateTime?()); var heidelpayPayments = request.Payments.OfType <HeidelpayPaymentInfo>(); if (!heidelpayPayments.Any()) { return; } foreach (var heidelpayPayment in heidelpayPayments) { CommerceParty entity = cart.Parties.FirstOrDefault(a => a.ExternalId != null && a.ExternalId.Equals(heidelpayPayment.PartyID, StringComparison.OrdinalIgnoreCase)) as CommerceParty; Assert.IsNotNull(entity, "Billing address can not be null"); var heidelpayPaymentComponent = new HeidelpayPaymentComponent { Id = Guid.NewGuid().ToString("N"), PaymentMethod = new EntityReference() { EntityTarget = heidelpayPayment.PaymentMethodID }, Amount = Money.CreateMoney(heidelpayPayment.Amount), BillingParty = TranslateEntityToParty(entity, new Party(), result) }; heidelpayPaymentComponent.BillingParty.ExternalId = entity.ExternalId; var command = Proxy.DoCommand(container.AddHeidelpayPayment(cart.ExternalId, heidelpayPaymentComponent)); } Sitecore.Commerce.Plugin.Carts.Cart cart1 = GetCart(cart.UserId, cart.ShopName, cart.ExternalId, cart.CustomerId, args.Request.CurrencyCode); if (cart1 != null) { result.Cart = TranslateCartToEntity(cart1, result); result.Payments = result.Cart.Payment.ToList(); } // Abort the rest of the pipeline. Because the default commerce engine connect processors will fail // if there is a payment other than creditcard or giftcard. args.AbortPipeline(); }
private void TranslateLinePaymentType(Sitecore.Commerce.Plugin.Carts.Cart source, CommerceCart destination) { var simplePayment = (SimplePaymentComponent)source.Components.FirstOrDefault(c => c is SimplePaymentComponent); if (simplePayment != null) { destination.Payment.Add(new SimplePaymentInfo { PaymentMethodID = simplePayment.PaymentMethod.EntityTarget, ExternalId = simplePayment.Id, Amount = simplePayment.Amount.Amount }); } }
public override void Process(ServicePipelineArgs args) { RemoveWishListLinesRequest request; RemoveWishListLinesResult result; ValidateArguments <RemoveWishListLinesRequest, RemoveWishListLinesResult>(args, out request, out result); try { Assert.IsNotNull((object)request.WishList, "request.WishList"); Assert.IsNotNullOrEmpty(request.WishList.UserId, "request.WishList.UserId"); Assert.IsNotNull((object)request.LineIds, "request.Lines"); foreach (string lineId in request.LineIds) { if (!string.IsNullOrEmpty(lineId)) { var command = this.RemoveWishListLine(request.WishList.UserId, request.WishList.ShopName, request.WishList.ExternalId, lineId, request.WishList.CustomerId, args.Request.CurrencyCode); result.HandleCommandMessages(command); if (!result.Success) { break; } } } Sitecore.Commerce.Plugin.Carts.Cart cart = this.GetWishList(request.WishList.UserId, request.WishList.ShopName, request.WishList.ExternalId, "", args.Request.CurrencyCode); if (cart != null) { result.WishList = TranslateCartToWishListEntity(cart, (ServiceProviderResult)result); result.RemovedLines = new System.Collections.ObjectModel.ReadOnlyCollection <WishListLine>(SetListLines(result.WishList)); } } catch (ArgumentException ex) { result.Success = false; result.SystemMessages.Add(CreateSystemMessage((Exception)ex)); } catch (AggregateException ex) { result.Success = false; result.SystemMessages.Add(CreateSystemMessage((Exception)ex)); } base.Process(args); }
public override void Process(ServicePipelineArgs args) { GetWishListRequest request; GetWishListResult result; ValidateArguments <GetWishListRequest, GetWishListResult>(args, out request, out result); try { Assert.IsNotNull((object)request.UserId, "request.UserIds"); Assert.IsNotNull((object)request.Shop, "request.Shop"); string prefix = "WishListDefault"; string message = "wishListId"; Assert.IsNotNullOrEmpty(prefix, message); Assert.IsNotNullOrEmpty(request.UserId, "userId"); string userId = request.UserId.Replace("{", string.Empty).Replace("}", string.Empty); string name = request.Shop.Name; string cartId = prefix + userId + name; Sitecore.Commerce.Plugin.Carts.Cart cart = this.GetWishList(userId, request.Shop.Name, cartId, "", args.Request.CurrencyCode); if (cart != null) { // Translate cart to wishlist result.WishList = TranslateCartToWishListEntity(cart, result); } else { result.Success = false; } } catch (ArgumentException ex) { result.Success = false; result.SystemMessages.Add(CreateSystemMessage((Exception)ex)); } catch (AggregateException ex) { result.Success = false; result.SystemMessages.Add(CreateSystemMessage((Exception)ex)); } base.Process(args); }
protected override void Translate(TranslateCartToEntityRequest request, Sitecore.Commerce.Plugin.Carts.Cart source, CommerceCart destination) { base.Translate(request, source, destination); TranslateLinePaymentType(source, destination); }