Esempio 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);
        }
Esempio 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);
            }
        }