예제 #1
0
        /// <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);
 }