/// <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> /// Translates to commerce party. /// </summary> /// <param name="sourceAddress">The source address.</param> /// <param name="destinationParty">The destination party.</param> protected virtual void TranslateToCommerceParty(OrderAddress sourceAddress, ConnectOrderModels.CommerceParty destinationParty) { destinationParty.ExternalId = sourceAddress.OrderAddressId; destinationParty.City = sourceAddress.City; destinationParty.Country = sourceAddress.CountryName; destinationParty.CountryCode = sourceAddress.CountryCode; destinationParty.PhoneNumber = sourceAddress.DaytimePhoneNumber; destinationParty.Email = sourceAddress.Email; destinationParty.FirstName = sourceAddress.FirstName; destinationParty.LastName = sourceAddress.LastName; destinationParty.Address1 = sourceAddress.Line1; destinationParty.Address2 = sourceAddress.Line2; destinationParty.ZipPostalCode = sourceAddress.PostalCode; destinationParty.State = sourceAddress.State; destinationParty.EveningPhoneNumber = sourceAddress.EveningPhoneNumber; destinationParty.FaxNumber = sourceAddress.FaxNumber; destinationParty.Name = sourceAddress.Name; destinationParty.Company = sourceAddress.Organization; destinationParty.RegionCode = sourceAddress.RegionCode; destinationParty.RegionName = sourceAddress.RegionName; this.TranslateToCustomAddressProperties(sourceAddress, destinationParty); }
/// <summary> /// Translates the specified source party. /// </summary> /// <param name="sourceParty">The source party.</param> /// <param name="destinationAddress">The destination address.</param> protected virtual void TranslateCommerceParty([NotNull] ConnectOrderModels.CommerceParty sourceParty, [NotNull] OrderAddress destinationAddress) { Assert.ArgumentNotNullOrEmpty(sourceParty.Name, "sourceParty.Name"); destinationAddress.City = sourceParty.City; destinationAddress.CountryName = sourceParty.Country; destinationAddress.DaytimePhoneNumber = sourceParty.PhoneNumber; destinationAddress.Email = sourceParty.Email; destinationAddress.FirstName = sourceParty.FirstName; destinationAddress.LastName = sourceParty.LastName; destinationAddress.Line1 = sourceParty.Address1; destinationAddress.Line2 = sourceParty.Address2; destinationAddress.PostalCode = sourceParty.ZipPostalCode; destinationAddress.State = sourceParty.State; destinationAddress.CountryCode = sourceParty.CountryCode; destinationAddress.EveningPhoneNumber = sourceParty.EveningPhoneNumber; destinationAddress.FaxNumber = sourceParty.FaxNumber; destinationAddress.Name = sourceParty.Name; destinationAddress.Organization = sourceParty.Company; destinationAddress.RegionCode = sourceParty.RegionCode; destinationAddress.RegionName = sourceParty.RegionName; this.TranslateCommercePartyCustomProperties(sourceParty, destinationAddress); }
/// <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); }
/// <summary> /// Translates to custom address properties. /// </summary> /// <param name="sourceAddress">The source address.</param> /// <param name="destinationParty">The destination party.</param> protected virtual void TranslateToCustomAddressProperties([NotNull] OrderAddress sourceAddress, [NotNull] ConnectOrderModels.CommerceParty destinationParty) { }
/// <summary> /// Translates the custom properties. /// </summary> /// <param name="sourceParty">The source party.</param> /// <param name="destinationAddress">The destination address.</param> protected virtual void TranslateCommercePartyCustomProperties([NotNull] ConnectOrderModels.CommerceParty sourceParty, [NotNull] OrderAddress destinationAddress) { destinationAddress[CommerceServerStorefrontConstants.KnowWeaklyTypesProperties.PartyType] = 1; }