/// <summary>
        /// Install the plugin
        /// </summary>
        public override void Install()
        {
            //settings
            var settings = new NochexPaymentSettings
            {
                DescriptionText = "Secure Payment by Debit / Credit Card."
            };

            _settingService.SaveSetting(settings);

            //locales
            _localizationService.AddOrUpdatePluginLocaleResource("Plugins.Payment.Nochex.AdditionalFee", "Additional fee");
            _localizationService.AddOrUpdatePluginLocaleResource("Plugins.Payment.Nochex.AdditionalFee.Hint", "The additional fee.");
            _localizationService.AddOrUpdatePluginLocaleResource("Plugins.Payment.Nochex.AdditionalFeePercentage", "Additional fee. Use percentage");
            _localizationService.AddOrUpdatePluginLocaleResource("Plugins.Payment.Nochex.AdditionalFeePercentage.Hint", "Determines whether to apply a percentage additional fee to the order total. If not enabled, a fixed value is used.");
            _localizationService.AddOrUpdatePluginLocaleResource("Plugins.Payment.Nochex.DescriptionText", "Description");
            _localizationService.AddOrUpdatePluginLocaleResource("Plugins.Payment.Nochex.DescriptionText.Hint", "Enter info that will be shown to customers during checkout");
            _localizationService.AddOrUpdatePluginLocaleResource("Plugins.Payment.Nochex.MerchantID", "Nochex Registered Email Address");
            _localizationService.AddOrUpdatePluginLocaleResource("Plugins.Payment.Nochex.MerchantID.Hint", "Nochex Registered Email Address / Merchant ID");
            _localizationService.AddOrUpdatePluginLocaleResource("Plugins.Payment.Nochex.PaymentMethodDescription", "Pay by cheque or money order");
            _localizationService.AddOrUpdatePluginLocaleResource("Plugins.Payment.Nochex.TransactMode", "Test Mode");
            _localizationService.AddOrUpdatePluginLocaleResource("Plugins.Payment.Nochex.TransactMode.Hint", "Specify transaction mode.");
            _localizationService.AddOrUpdatePluginLocaleResource("Plugins.Payment.Nochex.HideBillingDetails", "Hide Billing Details");
            _localizationService.AddOrUpdatePluginLocaleResource("Plugins.Payment.Nochex.HideBillingDetails.Hint", "Hide Billing Details on the payment page.");
            _localizationService.AddOrUpdatePluginLocaleResource("Plugins.Payment.Nochex.ProdInfoMode", "Detailed Product Information");
            _localizationService.AddOrUpdatePluginLocaleResource("Plugins.Payment.Nochex.ProdInfoMode.Hint", "Display Ordered Items on the payment page in a table-structured format.");

            ///_localizationService.AddOrUpdatePluginLocaleResource("Plugins.Payment.Nochex.ShippableProductRequired", "Shippable product required");
            ///_localizationService.AddOrUpdatePluginLocaleResource("Plugins.Payment.Nochex.ShippableProductRequired.Hint", "An option indicating whether shippable products are required in order to display this payment method during checkout.");

            base.Install();
        }
 public NochexPaymentProcessor(NochexPaymentSettings NochexPaymentSettings,
                               ILocalizationService localizationService,
                               ILogger logger,
                               IPaymentService paymentService,
                               IHttpContextAccessor httpContextAccessor,
                               ISettingService settingService,
                               IShoppingCartService shoppingCartService,
                               IWebHelper webHelper)
 {
     _logger = logger;
     _httpContextAccessor   = httpContextAccessor;
     _NochexPaymentSettings = NochexPaymentSettings;
     _localizationService   = localizationService;
     _paymentService        = paymentService;
     _settingService        = settingService;
     _shoppingCartService   = shoppingCartService;
     _webHelper             = webHelper;
 }