public TranferPaymentProcessor(ILocalizationService localizationService,
                                IPaymentService paymentService,
                                ISettingService settingService,
                                IWebHelper webHelper,
                                TransferPaymentSettings transferPaymentSettings,
                                BankObjectContext contextBank,
                                PaymentTransferObjectContext context,
                                IPaymentTransferService paymentTransferService)
 {
     this._localizationService     = localizationService;
     this._paymentService          = paymentService;
     this._settingService          = settingService;
     this._webHelper               = webHelper;
     this._transferPaymentSettings = transferPaymentSettings;
     this._context                = context;
     this._contextBank            = contextBank;
     this._paymentTransferService = paymentTransferService;
 }
        /// <summary>
        /// Install the plugin
        /// </summary>
        public override void Install()
        {
            //settings
            var settings = new TransferPaymentSettings
            {
                TransactMode = TransactMode.Pending
            };

            _settingService.SaveSetting(settings);

            //locales
            _localizationService.AddOrUpdatePluginLocaleResource("Plugins.Payments.Transfer.Instructions", "This payment method stores credit card information in database (it's not sent to any third-party processor). In order to store credit card information, you must be PCI compliant.");
            _localizationService.AddOrUpdatePluginLocaleResource("Plugins.Payments.Transfer.Fields.AdditionalFee", "Additional fee");
            _localizationService.AddOrUpdatePluginLocaleResource("Plugins.Payments.Transfer.Fields.AdditionalFee.Hint", "Enter additional fee to charge your customers.");
            _localizationService.AddOrUpdatePluginLocaleResource("Plugins.Payments.Transfer.Fields.AdditionalFeePercentage", "Additional fee. Use percentage");
            _localizationService.AddOrUpdatePluginLocaleResource("Plugins.Payments.Transfer.Fields.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.Payments.Transfer.Fields.TransactMode", "After checkout mark payment as");
            _localizationService.AddOrUpdatePluginLocaleResource("Plugins.Payments.Transfer.Fields.TransactMode.Hint", "Specify transaction mode.");
            _localizationService.AddOrUpdatePluginLocaleResource("Plugins.Payments.Transfer.PaymentMethodDescription", "Pago en Bolívares por transferencia bancaria.");
            _context.Install();
            _contextBank.Install();
            base.Install();
        }