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); }
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(); }
public MailingService(UserConnection userConnection, IMailingProvider mailingProvider) { UserConnection = userConnection; _mailingProvider = mailingProvider; Init(); }
public SendNotificationEventArgs(OrderData orderData, IMailingProvider mailingProvider) { this.OrderData = orderData; this.MailingProvider = mailingProvider; }