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); } }