Exemplo n.º 1
0
        private IMailingProvider CreateProviderInstance(Type providerType,
                                                        IMailingProviderConfigFactory configFactory)
        {
            IMailingProvider mailingProvider = null;
            var configurableConstructor      = providerType.GetConstructor(new Type[] {
                typeof(UserConnection),
                typeof(IMailingProviderConfigFactory)
            });

            if (configurableConstructor != null)
            {
                mailingProvider = Activator.CreateInstance(providerType, UserConnection, configFactory) as IMailingProvider;
            }
            else
            {
                var simpleConstructor = providerType.GetConstructor(new Type[] { typeof(UserConnection) });
                if (simpleConstructor != null)
                {
                    mailingProvider = Activator.CreateInstance(providerType, UserConnection) as IMailingProvider;
                }
                else
                {
                    mailingProvider = Activator.CreateInstance(providerType) as IMailingProvider;
                    mailingProvider.UserConnection = UserConnection;
                }
            }
            return(mailingProvider);
        }
Exemplo n.º 2
0
        private void InitProvider()
        {
            Guid _providerId            = MailingUtilities.GetActiveProviderId(UserConnection);
            SysMailingProvider provider = GetProvider(_providerId);

            if (provider == null)
            {
                string msg = string.Format("Could not load provider data from DB. Provider UId: {0}", _providerId);
                throw new Exception(msg);
            }
            Type providerType = Type.GetType(provider.ClassName);

            if (providerType != null)
            {
                IMailingProviderConfigFactory configFactory = CreateConfigFactory(provider.ConfigFactoryClassName);
                _mailingProvider = CreateProviderInstance(providerType, configFactory);
                var configurableProvider = _mailingProvider as IConfigurableMailingProvider;
                if (configurableProvider != null)
                {
                    configurableProvider.Configure();
                }
            }
            else
            {
                string msg = string.Format("Could not initiate provider instance. Provider UId: {0}", _providerId);
                throw new Exception(msg);
            }
        }
        public ConfigurationFactory(IStoreRepository storeRepository)
        {
            var config = ConfigurationManager.GetSection("commerceEngine") as CommerceEngineConfigurationSection;

            if (config == null)
            {
                return;
            }

            this._paymentProvider = Activator.CreateInstance(Type.GetType(config.PaymentProvider.Type)) as IPaymentProvider;
            if (this._paymentProvider != null)
            {
                this._paymentProvider.Login    = config.PaymentProvider.Login;
                this._paymentProvider.Password = config.PaymentProvider.Password;
            }

            this._mailingProvider = Activator.CreateInstance(Type.GetType(config.MailingProvider.Type)) as IMailingProvider;
            if (this._mailingProvider != null)
            {
                this._mailingProvider.FromAddress = config.MailingProvider.FromAddress;
                this._mailingProvider.SmtpServer  = config.MailingProvider.SmtpServer;
            }

            this._shippingProvider = Activator.CreateInstance(Type.GetType(config.ShippingProvider.Type)) as IShippingProvider;

            this._commerceEvents = new CommerceEvents();
            foreach (ProviderSettings element in config.Modules)
            {
                var module = Activator.CreateInstance(Type.GetType(element.Type)) as ICommerceModule;
                module?.Initialize(this._commerceEvents, element.Parameters);
            }
        }
        public CommerceManager(IStoreRepository storeRepository, IConfigurationFactory configurationFactory)
        {
            this._storeRepository = storeRepository;

            this._mailingProvider  = configurationFactory.GetMailer();
            this._paymentProvider  = configurationFactory.GetPaymentProcessor();
            this._shippingProvider = configurationFactory.GetShippingProcessor();
            this._commerceEvents   = configurationFactory.GetCommerceEvents();
        }
Exemplo n.º 5
0
 public MailingService(UserConnection userConnection, IMailingProvider mailingProvider)
 {
     UserConnection   = userConnection;
     _mailingProvider = mailingProvider;
     Init();
 }
 public SendNotificationEventArgs(OrderData orderData, IMailingProvider mailingProvider)
 {
     this.OrderData       = orderData;
     this.MailingProvider = mailingProvider;
 }