/// <summary> /// Adds the party. /// </summary> /// <param name="party">The party.</param> /// <param name="entityName">Name of the entity.</param> /// <param name="cartContext">The cart context.</param> /// <returns> /// The commerce party that was added. /// </returns> protected virtual ConnectOrderModels.CommerceParty AddParty(Party party, string entityName, CartPipelineContext cartContext) { OrderAddress destinationAddress = ContextTypeLoader.CreateInstance <OrderAddress>(this.GetPartyName(party), party.ExternalId); TranslateEntityToOrderAddressRequest translateRequest = new TranslateEntityToOrderAddressRequest(party, destinationAddress); var translateResult = PipelineUtility.RunCommerceConnectPipeline <TranslateEntityToOrderAddressRequest, TranslateEntityToOrderAddressResult>(PipelineNames.TranslateEntityToOrderAddress, translateRequest); OrderAddress newOrderAddress = translateResult.Address; cartContext.Basket.Addresses.Add(newOrderAddress); ConnectOrderModels.CommerceParty translatedParty = this.EntityFactory.Create <ConnectOrderModels.CommerceParty>(entityName); Assert.ArgumentNotNull(translatedParty, "translatedParty"); TranslateOrderAddressToEntityRequest translateOrderAddressRequest = new TranslateOrderAddressToEntityRequest(newOrderAddress, translatedParty); PipelineUtility.RunCommerceConnectPipeline <TranslateOrderAddressToEntityRequest, CommerceResult>(PipelineNames.TranslateOrderAddressToEntity, translateOrderAddressRequest); return(translatedParty); }
/// <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 = ContextTypeLoader.CreateInstance <OrderAddress>(party.Name, addressProfile); cartContext.Basket.Addresses.Add(newOrderAddress); ConnectOrderModels.CommerceParty translatedParty = this.EntityFactory.Create <ConnectOrderModels.CommerceParty>("Party"); Assert.ArgumentNotNull(translatedParty, "translatedParty"); var translateOrderAddressRequest = new TranslateOrderAddressToEntityRequest(newOrderAddress, translatedParty); PipelineUtility.RunCommerceConnectPipeline <TranslateOrderAddressToEntityRequest, CommerceResult>(PipelineNames.TranslateOrderAddressToEntity, translateOrderAddressRequest); return(translatedParty); }