private void PaymentMethodSaveNamesAndDescriptions(PaymentMethodCarrier newCarrier, PaymentMethodCarrier payment)
        {
            var displayNames = payment.Translations.ToDictionary(x => x.LanguageID, x => x.DisplayName);
            var descriptions = payment.Translations.ToDictionary(x => x.LanguageID, x => x.Description);

            foreach (var item in displayNames)
            {
                var translationCarrier = payment.Translations.FirstOrDefault(x => x.LanguageID == item.Key);
                if (translationCarrier == null)
                {
                    translationCarrier = new PaymentMethodTranslationCarrier(payment.ID, item.Key, null, null);
                }
                translationCarrier.DisplayName = item.Value;
                newCarrier.Translations.Add(translationCarrier);
            }
            foreach (var item in descriptions)
            {
                var translationCarrier = newCarrier.Translations.FirstOrDefault(x => x.LanguageID == item.Key);
                if (translationCarrier == null)
                {
                    translationCarrier = new PaymentMethodTranslationCarrier(payment.ID, item.Key, null, null);
                }
                translationCarrier.Description = item.Value;
            }
        }
 private void SavePaymentMethodCosts(PaymentMethodCarrier newCarrier, PaymentMethodCarrier payment)
 {
     foreach (var item in payment.Costs)
     {
         var deliveryMethodCostCarrier = payment.Costs.FirstOrDefault(x => x.CurrencyID == item.CurrencyID);
         if (deliveryMethodCostCarrier == null)
         {
             deliveryMethodCostCarrier = new PaymentMethodCostCarrier(newCarrier.ID, item.CurrencyID, 0, false, 0);
             newCarrier.Costs.Add(deliveryMethodCostCarrier);
         }
         deliveryMethodCostCarrier.Cost          = item.Cost;
         deliveryMethodCostCarrier.IncludeVat    = item.IncludeVat;
         deliveryMethodCostCarrier.VatPercentage = item.VatPercentage;
     }
 }
        private void CreatePaymentMethod(PaymentMethodCarrier payment, StructureInfo structureInfo)
        {
            var paymentMethod = ModuleECommerce.Instance.PaymentMethods.Get(payment.Name, payment.PaymentProviderName, _securityToken);

            if (paymentMethod != null)
            {
                var paymentMethodCarrier = paymentMethod.GetAsCarrier();
                paymentMethodCarrier.ImageID = Guid.Empty;
                //paymentMethodCarrier.ID = structureInfo.Id(paymentMethod.ID);
                PaymentMethodSaveNamesAndDescriptions(paymentMethodCarrier, payment);
                SavePaymentMethodCosts(paymentMethodCarrier, payment);

                paymentMethod.SetValuesFromCarrier(paymentMethodCarrier, _securityToken);
            }
        }