/// <summary> /// Gets the email address parties from shipping methods. /// </summary> /// <param name="inputModelList">The input model list.</param> /// <returns>A list of email parties if the email shipping method has been specified.</returns> protected virtual List<RefSFModels.EmailParty> GetEmailAddressPartiesFromShippingMethods(List<ShippingMethodInputModelItem> inputModelList) { List<RefSFModels.EmailParty> emailPartyList = null; if (inputModelList != null && inputModelList.Any()) { int i = 1; foreach (var inputModel in inputModelList) { if (ShippingOptionType.ElectronicDelivery == Convert.ToInt32(inputModel.ShippingPreferenceType, CultureInfo.InvariantCulture)) { if (emailPartyList == null) { emailPartyList = new List<RefSFModels.EmailParty>(); } RefSFModels.EmailParty party = new RefSFModels.EmailParty(); party.ExternalId = Guid.NewGuid().ToString(); party.Name = string.Format(CultureInfo.InvariantCulture, "{0}{1}", CommerceServerStorefrontConstants.CartConstants.EmailAddressNamePrefix, i); party.Email = inputModel.ElectronicDeliveryEmail; party.Text = inputModel.ElectronicDeliveryEmailContent; emailPartyList.Add(party); // Set the party id to the newly created email party in order to create the association in CS. inputModel.PartyID = party.ExternalId; i++; } } } return emailPartyList; }
/// <summary> /// Translates the address. /// </summary> /// <param name="sourceAddress">The source address.</param> /// <param name="destinationParty">The destination party.</param> protected virtual void TranslateAddress(CommerceServer.Core.Runtime.Orders.OrderAddress sourceAddress, RefSFModels.EmailParty destinationParty) { RefSFArguments.TranslateOrderAddressToEntityRequest request = new RefSFArguments.TranslateOrderAddressToEntityRequest(sourceAddress, destinationParty); PipelineUtility.RunCommerceConnectPipeline <RefSFArguments.TranslateOrderAddressToEntityRequest, CommerceResult>(PipelineNames.TranslateOrderAddressToEntity, request); }