public PipelineExecutionResult Execute(IPipelineArgs <AddAddressRequest, AddAddressResult> subject) { if (subject.Request.Properties.ContainsKey("FromUCommerce")) { if (!(bool)subject.Request.Properties["FromUCommerce"]) { return(PipelineExecutionResult.Success); } } var cartServiceProvider = new CartServiceProvider(); var cart = _mappingLibraryInternal.MapPurchaseOrderToCart(subject.Request.PurchaseOrder); var party = _orderAddressMapper.Map(subject.Response.OrderAddress); var partyList = new List <Party> { party }; if (subject.Request.ExistingOrderAddress == null) { var addPartiesRequest = new AddPartiesRequest(cart, partyList); addPartiesRequest.Properties["FromUCommerce"] = true; var addPartiesResult = cartServiceProvider.AddParties(addPartiesRequest); return(PipelineExecutionResult.Success); } var updatePartiesRequest = new UpdatePartiesRequest(cart, partyList); updatePartiesRequest.Properties["FromUCommerce"] = true; var updatePartiesResult = cartServiceProvider.UpdateParties(updatePartiesRequest); return(PipelineExecutionResult.Success); }
private void EditBillingInformation(AddressSaveViewModel.Address billingAddress) { var cartServiceProvider = new CartServiceProvider(); var cart = GetCart(); var party = new Party() { Address1 = billingAddress.Line1, Address2 = billingAddress.Line2, City = billingAddress.City, Company = billingAddress.CompanyName, Country = _countries.Select().First(x => x.CountryId == billingAddress.CountryId).Name, Email = billingAddress.EmailAddress, FirstName = billingAddress.FirstName, LastName = billingAddress.LastName, PartyId = "Billing", PhoneNumber = billingAddress.PhoneNumber, State = billingAddress.State, ZipPostalCode = billingAddress.PostalCode }; var partyList = new List <Party> { party }; if (cart.Parties.Any(x => x.PartyId == party.PartyId)) { var updatePartiesRequest = new UpdatePartiesRequest(cart, partyList); var updatePartiesResult = cartServiceProvider.UpdateParties(updatePartiesRequest); return; } var addPartiesRequest = new AddPartiesRequest(cart, partyList); var addPartiesResult = cartServiceProvider.AddParties(addPartiesRequest); }
public ManagerResponse <CustomerResult, IEnumerable <Party> > UpdateParties( CommerceCustomer customer, IEnumerable <Party> parties) { Assert.ArgumentNotNull(customer, nameof(customer)); Assert.ArgumentNotNull(parties, nameof(parties)); var updatePartiesRequest = new UpdatePartiesRequest(customer, parties.ToList()); var updatePartiesResult = this.customerServiceProvider.UpdateParties(updatePartiesRequest); return(new ManagerResponse <CustomerResult, IEnumerable <Party> >(updatePartiesResult, null)); }
/// <summary> /// Updates party info on a cart /// </summary> /// <param name="storefront">The Storefront Context</param> /// <param name="visitorContext">The Visitor Context</param> /// <param name="cart">the cart</param> /// <param name="parties">the party info</param> /// <returns>the updated cart</returns> protected virtual CartResult UpdatePartiesInCart([NotNull] CommerceStorefront storefront, [NotNull] VisitorContext visitorContext, [NotNull] CommerceCart cart, [NotNull] List <CommerceParty> parties) { Assert.ArgumentNotNull(cart, "cart"); Assert.ArgumentNotNull(parties, "parties"); var request = new UpdatePartiesRequest(cart, parties.Cast <Party>().ToList()); var result = this.CartServiceProvider.UpdateParties(request); if (!result.Success) { Helpers.LogSystemMessages(result.SystemMessages, result); } return(result); }
/// <summary> /// Updates the parties. /// </summary> /// <param name="storefront">The storefront.</param> /// <param name="user">The user.</param> /// <param name="parties">The parties.</param> /// <returns>The manager result where the success flag is returned as the Result.</returns> public virtual ManagerResponse <CustomerResult, bool> UpdateParties([NotNull] CommerceStorefront storefront, [NotNull] CommerceCustomer user, List <CommerceParty> parties) { Assert.ArgumentNotNull(storefront, "storefront"); Assert.ArgumentNotNull(user, "user"); Assert.ArgumentNotNull(parties, "parties"); var request = new UpdatePartiesRequest(user, parties.Cast <Party>().ToList()); var result = this.CustomerServiceProvider.UpdateParties(request); if (!result.Success) { Helpers.LogSystemMessages(result.SystemMessages, result); } return(new ManagerResponse <CustomerResult, bool>(result, result.Success)); }
public void ShouldHandleInvalidCustomerId() { var request = new UpdatePartiesRequest( new CommerceCustomer { ExternalId = "1234" }, new List <Party>(0) ); var result = new CustomerResult(); var args = new ServicePipelineArgs(request, result); _processor.Process(args); result.Success.Should().Be(false); result.SystemMessages.Should().HaveCount(x => x > 0); }
public void ShouldCallServiceWithCorrectArgs() { var customerId = Guid.NewGuid(); var request = new UpdatePartiesRequest( new CommerceCustomer { ExternalId = customerId.ToString() }, new List <Party> { new Party(), new Party() } ); var result = new CustomerResult(); var args = new ServicePipelineArgs(request, result); _client.UpdateAddresses(Arg.Any <Guid>(), Arg.Any <AddressModel[]>()).Returns(new Response()); _processor.Process(args); _client.Received().UpdateAddresses(Arg.Is(customerId), Arg.Is <AddressModel[]>(x => x.Length == request.Parties.Count)); }
public ManagerResponse <CustomerResult, bool> UpdateParties(string userName, List <IParty> parties) { Assert.ArgumentNotNull(userName, nameof(userName)); Assert.ArgumentNotNull(parties, nameof(parties)); var getUserResponse = GetUser(userName); if (getUserResponse.Result == null) { throw new ArgumentException("User not found, invalid userName", nameof(userName)); } var customer = new CommerceCustomer { ExternalId = getUserResponse.Result.ExternalId }; var request = new UpdatePartiesRequest(customer, parties.Select(p => p.ToCommerceParty()).ToList()); var result = CustomerServiceProvider.UpdateParties(request); result.WriteToSitecoreLog(); return(new ManagerResponse <CustomerResult, bool>(result, result.Success)); }
/// <summary> /// Updates party info on a cart /// </summary> /// <param name="storefront">The Storefront Context</param> /// <param name="visitorContext">The Visitor Context</param> /// <param name="cart">the cart</param> /// <param name="parties">the party info</param> /// <returns>the updated cart</returns> protected virtual CartResult UpdatePartiesInCart([NotNull] CommerceStorefront storefront, [NotNull] VisitorContext visitorContext, [NotNull] CommerceCart cart, [NotNull] List<CommerceParty> parties) { Assert.ArgumentNotNull(cart, "cart"); Assert.ArgumentNotNull(parties, "parties"); var request = new UpdatePartiesRequest(cart, parties.Cast<Party>().ToList()); var result = this.CartServiceProvider.UpdateParties(request); if (!result.Success) { Helpers.LogSystemMessages(result.SystemMessages, result); } return result; }
/// <summary> /// Updates the parties. /// </summary> /// <param name="storefront">The storefront.</param> /// <param name="user">The user.</param> /// <param name="parties">The parties.</param> /// <returns>The manager result where the success flag is returned as the Result.</returns> public virtual ManagerResponse<CustomerResult, bool> UpdateParties([NotNull] CommerceStorefront storefront, [NotNull] CommerceCustomer user, List<Party> parties) { Assert.ArgumentNotNull(storefront, "storefront"); Assert.ArgumentNotNull(user, "user"); Assert.ArgumentNotNull(parties, "parties"); var request = new UpdatePartiesRequest(user, parties); var result = this.CustomerServiceProvider.UpdateParties(request); if (!result.Success) { Helpers.LogSystemMessages(result.SystemMessages, result); } return new ManagerResponse<CustomerResult, bool>(result, result.Success); }