/// <summary> /// Processes the specified arguments. /// </summary> /// <param name="args">The arguments.</param> public override void Process(Sitecore.Commerce.Pipelines.ServicePipelineArgs args) { Assert.ArgumentNotNull(args, "args"); Assert.ArgumentNotNull(args.Request, "args.request"); Assert.ArgumentNotNull(args.Result, "args.result"); TranslateOrderAddressToEntityRequest request = (TranslateOrderAddressToEntityRequest)args.Request; Assert.ArgumentNotNull(request.SourceAddress, "request.SourceAddress"); Assert.ArgumentNotNull(request.DestinationParty, "request.DestinationParty"); if (request.DestinationParty is ConnectOrderModels.CommerceParty) { this.TranslateToCommerceParty(request.SourceAddress, request.DestinationParty as ConnectOrderModels.CommerceParty); } else if (request.DestinationParty is EmailParty) { this.TranslateToEmailParty(request.SourceAddress, request.DestinationParty as EmailParty); } else { this.TranslateToCustomParty(request.SourceAddress, request.DestinationParty); } }
/// <summary> /// Adds the user profile address. /// </summary> /// <param name="party">The party.</param> /// <param name="cartContext">The cart context.</param> /// <returns>The commerce party that was added.</returns> protected virtual ConnectOrderModels.CommerceParty AddUserProfileAddress(ConnectOrderModels.CommerceParty party, CartPipelineContext cartContext) { Assert.IsTrue(party.UserProfileAddressId != Guid.Empty, "party.UserProfileAddressId != Guid.Empty"); Assert.IsNotNullOrEmpty(party.Name, "party.Name"); var repository = this.GetProfileRepository(); Profile addressProfile = repository.GetProfile("Address", party.UserProfileAddressId.ToString("B")); Assert.IsNotNull(addressProfile, string.Format(CultureInfo.InvariantCulture, "An invalid address profile was provided: {0}", party.UserProfileAddressId.ToString("B"))); OrderAddress newOrderAddress = CommerceTypeLoader.CreateInstance <OrderAddress>(new object[] { party.Name, addressProfile }); cartContext.Basket.Addresses.Add(newOrderAddress); ConnectOrderModels.CommerceParty translatedParty = this.EntityFactory.Create <ConnectOrderModels.CommerceParty>("Party"); Assert.ArgumentNotNull(translatedParty, "translatedParty"); TranslateOrderAddressToEntityRequest translateOrderAddressRequest = new TranslateOrderAddressToEntityRequest(newOrderAddress, translatedParty); PipelineUtility.RunCommerceConnectPipeline <TranslateOrderAddressToEntityRequest, CommerceResult>(PipelineNames.TranslateOrderAddressToEntity, translateOrderAddressRequest); return(translatedParty); }
/// <summary> /// Translates the address. /// </summary> /// <param name="sourceAddress">The source address.</param> /// <param name="destinationParty">The destination party.</param> protected virtual void TranslateAddress(OrderAddress sourceAddress, EmailParty destinationParty) { TranslateOrderAddressToEntityRequest request = new TranslateOrderAddressToEntityRequest(sourceAddress, destinationParty); PipelineUtility.RunCommerceConnectPipeline <TranslateOrderAddressToEntityRequest, CommerceResult>(PipelineNames.TranslateOrderAddressToEntity, request); }
/// <summary> /// Translates the address. /// </summary> /// <param name="sourceAddress">The source address.</param> /// <param name="destinationParty">The destination party.</param> protected override void TranslateAddress(OrderAddress sourceAddress, Commerce.Connect.CommerceServer.Orders.Models.CommerceParty destinationParty) { TranslateOrderAddressToEntityRequest request = new TranslateOrderAddressToEntityRequest(sourceAddress, destinationParty); PipelineUtility.RunCommerceConnectPipeline <TranslateOrderAddressToEntityRequest, CommerceResult>(PipelineNames.TranslateOrderAddressToEntity, request); }