/// <summary>
        /// </summary>
        /// <param name="gatewayProvider"></param>
        /// <param name="gatewayName"></param>
        /// <exception cref="GatewayNotFoundException"></exception>
        /// <exception cref="ArgumentNullException"></exception>
        public static IGateway Provide(this IGatewayProvider gatewayProvider, string gatewayName)
        {
            if (gatewayProvider == null)
            {
                throw new ArgumentNullException(nameof(gatewayProvider));
            }

            return(gatewayProvider.Provide(GatewayHelper.FindGatewayTypeByName(gatewayName)));
        }
        public void FixtureSetup()
        {
            SqlSyntaxProviderTestHelper.EstablishSqlSyntax();

            var cacheProvider = new Mock<IRuntimeCacheProvider>();

            GatewayProviderService = new GatewayProviderService();

            var providers =
                GatewayProviderService.GetAllGatewayProviders()
                    .Where(x => x.GatewayProviderType == GatewayProviderType.Payment);

            GatewayProvider = providers.FirstOrDefault(x => x.Key == new Guid("C6BF6743-3565-401F-911A-33B68CACB11B"));

            if (GatewayProvider != null)
            {
                GatewayProviderService.Delete(GatewayProvider);
            }

            var petaPoco = new PetaPocoUnitOfWorkProvider();

            var xLogin = ConfigurationManager.AppSettings["xlogin"];
            var xtrankey = ConfigurationManager.AppSettings["xtrankey"];

            var sql = new Sql();

            var dto = new GatewayProviderDto()
            {
                Key = new Guid("C6BF6743-3565-401F-911A-33B68CACB11B"),
                Name = "AuthorizeNet",
                Description = "AuthorizeNet",
                TypeFullName =
                    "Merchello.Plugin.Payments.AuthorizeNet.AuthorizeNetPaymentGatewayProvider, Merchello.Plugin.Payments.AuthorizeNet, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null",
                ExtendedData = "<extendedData />",
                EncryptExtendedData = false,
                ProviderTfKey = Constants.TypeFieldKeys.GatewayProvider.PaymentProviderKey,
                CreateDate = DateTime.Now,
                UpdateDate = DateTime.Now
            };

            petaPoco.GetUnitOfWork().Database.Insert(dto);

            GatewayProvider =
                GatewayProviderService.GetGatewayProviderByKey(new Guid("C6BF6743-3565-401F-911A-33B68CACB11B"));

            var providerSettings = new AuthorizeNetProcessorSettings()
            {
                LoginId = xLogin,
                TransactionKey = xtrankey
            };

            GatewayProvider.ExtendedData.SaveProcessorSettings(providerSettings);

            Provider = new AuthorizeNetPaymentGatewayProvider(GatewayProviderService, GatewayProvider,
                cacheProvider.Object);
        }
 public DefaultConnectionManage(ConnectionContext context, IGatewayProvider gatewayProvider, IClusterConnectionFactory factory, IClusterNodeProvider clusterNodeProvider, IGatewayPipeline gatewayFilter, IGatewaySelector gatewaySelector, ClientOptions options)
 {
     this.factory             = factory;
     this.clusterNodeProvider = clusterNodeProvider;
     this.gatewayFilter       = gatewayFilter;
     this.gatewaySelector     = gatewaySelector;
     this.gatewayProvider     = gatewayProvider;
     this.options             = options;
     this.context             = context;
 }
        protected GatewayProviderBase(IGatewayProviderService gatewayProviderService, IGatewayProvider gatewayProvider, IRuntimeCacheProvider runtimeCacheProvider)
        {
            Mandate.ParameterNotNull(gatewayProviderService, "gatewayProviderService");
            Mandate.ParameterNotNull(gatewayProvider, "gatewayProvider");
            Mandate.ParameterNotNull(runtimeCacheProvider, "runtimeCacheProvider");

            _gatewayProviderService = gatewayProviderService;
            _gatewayProvider = gatewayProvider;
            _runtimeCache = runtimeCacheProvider;
        }
示例#5
0
 /// <summary>
 /// Initializes an instance of <see cref="DefaultOnlinePayment"/>.
 /// </summary>
 /// <param name="services"></param>
 /// <param name="database"></param>
 /// <param name="tokenProvider"></param>
 /// <param name="gatewayProvider"></param>
 /// <param name="messagesOptions"></param>
 /// <param name="logger"></param>
 public DefaultOnlinePayment(
     IServiceProvider services,
     ParbadDataContext database,
     IPaymentTokenProvider tokenProvider,
     IGatewayProvider gatewayProvider,
     IOptions <MessagesOptions> messagesOptions,
     ILogger <IOnlinePayment> logger)
 {
     Services         = services;
     _database        = database;
     _tokenProvider   = tokenProvider;
     _messagesOptions = messagesOptions;
     _logger          = logger;
     _gatewayProvider = gatewayProvider;
 }
示例#6
0
 /// <summary>
 /// Initializes an instance of <see cref="DefaultOnlinePayment"/>.
 /// </summary>
 /// <param name="services"></param>
 /// <param name="storageManager"></param>
 /// <param name="tokenProvider"></param>
 /// <param name="gatewayProvider"></param>
 /// <param name="messagesOptions"></param>
 /// <param name="logger"></param>
 public DefaultOnlinePayment(
     IServiceProvider services,
     IStorageManager storageManager,
     IPaymentTokenProvider tokenProvider,
     IGatewayProvider gatewayProvider,
     IOptions <MessagesOptions> messagesOptions,
     ILogger <IOnlinePayment> logger)
 {
     Services         = services;
     _storageManager  = storageManager;
     _tokenProvider   = tokenProvider;
     _messagesOptions = messagesOptions;
     _logger          = logger;
     _storageManager  = storageManager;
     _gatewayProvider = gatewayProvider;
 }
示例#7
0
 /// <summary>
 /// Initializes an instance of <see cref="DefaultOnlinePayment"/>.
 /// </summary>
 public DefaultOnlinePayment(
     IServiceProvider services,
     IStorage storage,
     IPaymentTokenProvider tokenProvider,
     IGatewayProvider gatewayProvider,
     IOptions <ParbadOptions> options,
     IParbadLogger <DefaultOnlinePayment> logger)
 {
     Services         = services;
     _storage         = storage;
     _tokenProvider   = tokenProvider;
     _options         = options.Value;
     _logger          = logger;
     _storage         = storage;
     _gatewayProvider = gatewayProvider;
 }
 public WebApiConnectionFactory(IGatewayProvider gatewayProvider, ConnectionContext context)
 {
     this._gatewayProvider = gatewayProvider;
     this._context         = context;
 }
        /// <summary>
        /// Saves a single instance of a <see cref="IGatewayProvider"/>
        /// </summary>
        /// <param name="gatewayProvider"></param>
        /// <param name="raiseEvents">Optional boolean indicating whether or not to raise events</param>
        public void Save(IGatewayProvider gatewayProvider, bool raiseEvents = true)
        {
            if (raiseEvents) Saving.RaiseEvent(new SaveEventArgs<IGatewayProvider>(gatewayProvider), this);

            using (new WriteLock(Locker))
            {
                var uow = _uowProvider.GetUnitOfWork();
                using (var repository = _repositoryFactory.CreateGatewayProviderRepository(uow))
                {
                    repository.AddOrUpdate(gatewayProvider);
                    uow.Commit();
                }

                if (raiseEvents) Saved.RaiseEvent(new SaveEventArgs<IGatewayProvider>(gatewayProvider), this);
            }
        }
示例#10
0
 public ServersController(IServerProvider server, IGatewayProvider gatewayProvider)
 {
     _server          = server;
     _gatewayProvider = gatewayProvider;
 }
 public PayPalPaymentGatewayProvider(IGatewayProviderService gatewayProviderService, IGatewayProvider gatewayProvider, IRuntimeCacheProvider runtimeCacheProvider)
     : base(gatewayProviderService, gatewayProvider, runtimeCacheProvider)
 {
 }
 protected PaymentGatewayProviderBase(IGatewayProviderService gatewayProviderService, IGatewayProvider gatewayProvider, IRuntimeCacheProvider runtimeCacheProvider)
     : base(gatewayProviderService, gatewayProvider, runtimeCacheProvider)
 {
 }
 public PayPalPaymentGatewayProvider(IGatewayProviderService gatewayProviderService, IGatewayProvider gatewayProvider, IRuntimeCacheProvider runtimeCacheProvider)
     : base(gatewayProviderService, gatewayProvider, runtimeCacheProvider)
 {
 }
 protected TaxationGatewayProviderBase(IGatewayProviderService gatewayProviderService, IGatewayProvider gatewayProvider, IRuntimeCacheProvider runtimeCacheProvider)
     : base(gatewayProviderService, gatewayProvider, runtimeCacheProvider)
 {
 }
 public FixedRateTaxationGatewayProvider(IGatewayProviderService gatewayProviderService, IGatewayProvider gatewayProvider, IRuntimeCacheProvider runtimeCacheProvider)
     : base(gatewayProviderService, gatewayProvider, runtimeCacheProvider)
 {
 }
示例#16
0
 public WcfConnection(IGatewayProvider gatewayProvider, ConnectionContext context) : base(context)
 {
     this._gatewayProvider = gatewayProvider;
 }
示例#17
0
 public ServicesController(IGrpcClientProvider clientProvider, IGatewayProvider gatewayProvider, IServiceRouteProvider routeProvider)
 {
     this._clientProvider = clientProvider;
     _gatewayProvider     = gatewayProvider;
     _routeProvider       = routeProvider;
 }
        // TODO refactor this
        private void ToggleProviderActivation(IGatewayProvider gatewayProvider, GatewayProviderType gatewayProviderType)
        {
            switch (gatewayProviderType)
            {
                case GatewayProviderType.Payment:
                    if (gatewayProvider.Activated)
                        _gatewayContext.Payment.DeactivateProvider(gatewayProvider);
                    else
                        _gatewayContext.Payment.ActivateProvider(gatewayProvider);
                    break;

                case GatewayProviderType.Shipping:
                    if (gatewayProvider.Activated)
                        _gatewayContext.Shipping.DeactivateProvider(gatewayProvider);
                    else
                        _gatewayContext.Shipping.ActivateProvider(gatewayProvider);
                    break;

                case GatewayProviderType.Taxation:
                    if (gatewayProvider.Activated)
                        _gatewayContext.Taxation.DeactivateProvider(gatewayProvider);
                    else
                        _gatewayContext.Taxation.ActivateProvider(gatewayProvider);
                    break;
            }
        }
 public WcfConnectionFactory(IGatewayProvider gatewayProvider, ConnectionContext context)
 {
     this.gatewayProvider = gatewayProvider;
     this.context         = context;
 }
        /// <summary>
        /// Deletes a <see cref="IGatewayProvider"/>
        /// </summary>
        /// <param name="gatewayProvider"></param>
        /// <param name="raiseEvents">Optional boolean indicating whether or not to raise events</param>
        public void Delete(IGatewayProvider gatewayProvider, bool raiseEvents = true)
        {
            if (raiseEvents) Deleting.RaiseEvent(new DeleteEventArgs<IGatewayProvider>(gatewayProvider), this);

            // delete associated methods
            switch (gatewayProvider.GatewayProviderType)
            {
                case GatewayProviderType.Payment:
                    var paymentMethods = _paymentMethodService.GetPaymentMethodsByProviderKey(gatewayProvider.Key).ToArray();
                    if(paymentMethods.Any()) _paymentMethodService.Delete(paymentMethods);
                    break;

                case GatewayProviderType.Shipping:
                    var shippingMethods = _shipMethodService.GetShipMethodsByProviderKey(gatewayProvider.Key).ToArray();
                    if(shippingMethods.Any()) _shipMethodService.Delete(shippingMethods);
                    break;

                case GatewayProviderType.Taxation:
                    var taxMethods = _taxMethodService.GetTaxMethodsByProviderKey(gatewayProvider.Key).ToArray();
                    if(taxMethods.Any()) _taxMethodService.Delete(taxMethods);
                    break;
            }

            using (new WriteLock(Locker))
            {
                var uow = _uowProvider.GetUnitOfWork();
                using (var repository = _repositoryFactory.CreateGatewayProviderRepository(uow))
                {
                    repository.Delete(gatewayProvider);
                    uow.Commit();
                }
            }
            if (raiseEvents) Deleted.RaiseEvent(new DeleteEventArgs<IGatewayProvider>(gatewayProvider), this);
        }
 protected ShippingGatewayProviderBase(IGatewayProviderService gatewayProviderService, IGatewayProvider gatewayProvider, IRuntimeCacheProvider runtimeCacheProvider)
     : base(gatewayProviderService, gatewayProvider, runtimeCacheProvider)
 {
 }
 public TestingShippingGatewayProvider(IGatewayProviderService gatewayProviderService, IGatewayProvider gatewayProvider, IRuntimeCacheProvider runtimeCacheProvider)
     : base(gatewayProviderService, gatewayProvider, runtimeCacheProvider)
 {
 }
        internal static IGatewayProvider ToGatewayProvider(this GatewayProviderDisplay gatewayProvider, IGatewayProvider destination)
        {
            if (gatewayProvider.Key != Guid.Empty) destination.Key = gatewayProvider.Key;
            // type key and typeFullName should be handled by the resolver
            destination.Name = gatewayProvider.Name;
            destination.Description = gatewayProvider.Description;
            destination.EncryptExtendedData = gatewayProvider.EncryptExtendedData;

            ((GatewayProvider)destination).ExtendedData = gatewayProvider.ExtendedData.AsExtendedDataCollection();

            return destination;
        }