Ejemplo n.º 1
0
        /// <summary>
        /// 默认取第1个转换为连接字符串
        /// </summary>
        /// <param name="amqpConfig">AMQP配置信息</param>
        /// <param name="symmetricalEncryption">加密</param>
        /// <returns>连接字符串</returns>
        public static string ToFristConnectionString(this AmqpConfigInfo amqpConfig, ISymmetricalEncryption symmetricalEncryption = null)
        {
            if (amqpConfig == null || amqpConfig.Amqp.IsNullOrLength0())
            {
                return(null);
            }

            var amqp = amqpConfig.Amqp[0];

            if (amqp == null)
            {
                return(null);
            }

            string connString = null;

            if (amqp.ConnectionEncrypt)
            {
                symmetricalEncryption = SymmetricalEncryptionUtil.GetSymmetricalEncryption(symmetricalEncryption);
                connString            = symmetricalEncryption.Decrypt(amqp.ConnectionString);
            }
            else
            {
                connString = amqp.ConnectionString;
            }

            return(AmqpConfigUtil.GetConnectionString(connString));
        }
 /// <summary>
 /// 构造方法
 /// </summary>
 /// <param name="symmetricalEncryption">加密</param>
 public ConnectionFactoryBase(ISymmetricalEncryption symmetricalEncryption = null)
 {
     if (symmetricalEncryption == null)
     {
         this.symmetricalEncryption = new DES();
     }
     else
     {
         this.symmetricalEncryption = symmetricalEncryption;
     }
 }
 /// <summary>
 /// 构造方法
 /// </summary>
 /// <param name="symmetricalEncryption">加密</param>
 /// <param name="config">配置</param>
 public ConnectionConfigFactoryBase(ISymmetricalEncryption symmetricalEncryption = null, IConfiguration config = null)
     : base(symmetricalEncryption)
 {
     if (config == null)
     {
         config = App.CurrConfig;
         if (config == null)
         {
             throw new ArgumentNullException("未注入配置对象,请在构造里传入或者设置App.CurrConfig");
         }
     }
     this.config = config;
 }
 /// <summary>
 /// 构造方法
 /// </summary>
 /// <param name="symmetricalEncryption">加密</param>
 /// <param name="appConfig">应用配置</param>
 public ConnectionAppConfigFactoryBase(ISymmetricalEncryption symmetricalEncryption = null, IAppConfiguration appConfig = null)
     : base(symmetricalEncryption)
 {
     if (appConfig == null)
     {
         appConfig = PlatformTool.AppConfig;
         if (appConfig == null)
         {
             throw new ArgumentNullException("未注入应用配置对象,请在构造里传入或者设置PlatformTool.AppConfig");
         }
     }
     this.appConfig = appConfig;
 }
Ejemplo n.º 5
0
 /// <summary>
 /// 构造方法
 /// </summary>
 /// <param name="symmetricalEncryption">加密</param>
 /// <param name="appConfig">应用配置</param>
 public RabbitConnectionFactory(ISymmetricalEncryption symmetricalEncryption = null, IAppConfiguration appConfig = null)
     : base(symmetricalEncryption, appConfig)
 {
 }
Ejemplo n.º 6
0
        /// <summary>
        /// 默认取第1个转换为AMQP连接信息
        /// </summary>
        /// <param name="amqpConfig">AMQP配置信息</param>
        /// <param name="connectionStringParse">连接字符串解析</param>
        /// <param name="symmetricalEncryption">加密</param>
        /// <returns>AMQP连接信息</returns>
        public static AmqpConnectionInfo ToFristAmqpConnectionInfo(this AmqpConfigInfo amqpConfig, IConnectionStringParse <AmqpConnectionInfo> connectionStringParse = null, ISymmetricalEncryption symmetricalEncryption = null)
        {
            if (amqpConfig == null || amqpConfig.Amqp.IsNullOrLength0())
            {
                return(null);
            }
            if (connectionStringParse == null)
            {
                connectionStringParse = AmqpConnectionUtil.DefaultConnectionStringParse;
            }

            var amqp = amqpConfig.Amqp[0];

            if (amqp == null)
            {
                return(null);
            }

            string connString = null;

            if (amqp.ConnectionEncrypt)
            {
                symmetricalEncryption = SymmetricalEncryptionUtil.GetSymmetricalEncryption(symmetricalEncryption);
                connString            = symmetricalEncryption.Decrypt(amqp.ConnectionString);
            }
            else
            {
                connString = amqp.ConnectionString;
            }

            return(connectionStringParse.Parse(connString));
        }
Ejemplo n.º 7
0
        /// <summary>
        /// 转换为AMQP连接信息
        /// </summary>
        /// <param name="amqpConfig">AMQP配置信息</param>
        /// <param name="hostId">主机ID</param>
        /// <param name="connectionStringParse">连接字符串解析</param>
        /// <param name="symmetricalEncryption">加密</param>
        /// <returns>AMQP连接信息</returns>
        public static AmqpConnectionInfo ToAmqpConnectionInfo(this AmqpConfigInfo amqpConfig, string hostId, IConnectionStringParse <AmqpConnectionInfo> connectionStringParse = null, ISymmetricalEncryption symmetricalEncryption = null)
        {
            if (amqpConfig == null || string.IsNullOrWhiteSpace(hostId) || amqpConfig.Amqp.IsNullOrLength0())
            {
                return(null);
            }
            if (connectionStringParse == null)
            {
                connectionStringParse = AmqpConnectionUtil.DefaultConnectionStringParse;
            }

            var amqp = amqpConfig.Amqp.Where(p => p.HostId == hostId).FirstOrDefault();

            if (amqp == null)
            {
                return(null);
            }

            string connString = null;

            if (amqp.ConnectionEncrypt)
            {
                symmetricalEncryption = SymmetricalEncryptionUtil.GetSymmetricalEncryption(symmetricalEncryption);
                connString            = symmetricalEncryption.Decrypt(amqp.ConnectionString);
            }
            else
            {
                connString = amqp.ConnectionString;
            }

            return(connectionStringParse.Parse(connString));
        }
Ejemplo n.º 8
0
        /// <summary>
        /// 将AMQP连接转换为主机ID
        /// </summary>
        /// <param name="amqpConfig">AMQP配置信息</param>
        /// <param name="amqpConnection">AMQP连接</param>
        /// <param name="connectionStringParse">连接字符串解析</param>
        /// <param name="symmetricalEncryption">加密</param>
        /// <returns>主机ID</returns>
        public static string ToHostId(this AmqpConfigInfo amqpConfig, AmqpConnectionInfo amqpConnection, IConnectionStringParse <AmqpConnectionInfo> connectionStringParse = null, ISymmetricalEncryption symmetricalEncryption = null)
        {
            string hostId;

            ToExchanges(amqpConfig, amqpConnection, out hostId, connectionStringParse, symmetricalEncryption);

            return(hostId);
        }
Ejemplo n.º 9
0
        /// <summary>
        /// 将AMQP连接转换为交换机信息数组
        /// </summary>
        /// <param name="amqpConfig">AMQP配置信息</param>
        /// <param name="amqpConnection">AMQP连接</param>
        /// <param name="hostId">主机ID</param>
        /// <param name="connectionStringParse">连接字符串解析</param>
        /// <param name="symmetricalEncryption">加密</param>
        /// <returns>交换机信息数组</returns>
        public static ExchangeInfo[] ToExchanges(this AmqpConfigInfo amqpConfig, AmqpConnectionInfo amqpConnection, out string hostId, IConnectionStringParse <AmqpConnectionInfo> connectionStringParse = null, ISymmetricalEncryption symmetricalEncryption = null)
        {
            hostId = null;
            if (amqpConfig == null || amqpConfig.Amqp.IsNullOrLength0() || amqpConnection == null || string.IsNullOrWhiteSpace(amqpConnection.VirtualPath))
            {
                return(null);
            }
            if (connectionStringParse == null)
            {
                connectionStringParse = AmqpConnectionUtil.DefaultConnectionStringParse;
            }

            symmetricalEncryption = SymmetricalEncryptionUtil.GetSymmetricalEncryption(symmetricalEncryption);

            foreach (var r in amqpConfig.Amqp)
            {
                if (string.IsNullOrWhiteSpace(r.ConnectionString))
                {
                    continue;
                }

                string connString = r.ConnectionEncrypt ? symmetricalEncryption.Decrypt(r.ConnectionString) : r.ConnectionString;
                var    conn       = connectionStringParse.Parse(connString);
                if (conn.Host.Equals(amqpConnection.Host) && conn.Port == amqpConnection.Port && conn.VirtualPath.Equals(amqpConnection.VirtualPath))
                {
                    hostId = r.HostId;

                    return(r.Exchanges);
                }
            }

            return(null);
        }
 /// <summary>
 /// 获取加密,如果传入为空,则返回默认加密
 /// </summary>
 /// <param name="symmetricalEncryption">加密</param>
 /// <returns>加密</returns>
 public static ISymmetricalEncryption GetSymmetricalEncryption(ISymmetricalEncryption symmetricalEncryption = null)
 {
     return(symmetricalEncryption == null ? DefaultSymmetricalEncryption : symmetricalEncryption);
 }
Ejemplo n.º 11
0
 /// <summary>
 /// 构造方法
 /// </summary>
 /// <param name="symmetricalEncryption">加密</param>
 /// <param name="config">配置</param>
 public AmqpConnectionFactoryBase(ISymmetricalEncryption symmetricalEncryption = null, IConfiguration config = null)
     : base(symmetricalEncryption, config)
 {
 }
Ejemplo n.º 12
0
 /// <summary>
 /// 构造方法
 /// </summary>
 /// <param name="symmetricalEncryption">加密</param>
 /// <param name="appConfig">应用配置</param>
 /// <param name="amqpConfigReader">配置读取</param>
 public RabbitConnectionFactory(ISymmetricalEncryption symmetricalEncryption = null, IAppConfiguration appConfig = null, IAmqpConfigReader amqpConfigReader = null)
     : base(symmetricalEncryption, appConfig)
 {
     this.amqpConfigReader = AmqpUtil.GetConfigReader(amqpConfigReader);
 }
 /// <summary>
 /// 构造方法
 /// </summary>
 /// <param name="symmetricalEncryption">加密</param>
 /// <param name="appConfig">应用配置</param>
 public MessageQueueConnectionFactoryBase(ISymmetricalEncryption symmetricalEncryption = null, IAppConfiguration appConfig = null)
     : base(symmetricalEncryption, appConfig)
 {
 }
Ejemplo n.º 14
0
 /// <summary>
 /// 构造方法
 /// </summary>
 /// <param name="amqpConfigReader">AMQP配置读取</param>
 /// <param name="symmetricalEncryption">加密</param>
 public RabbitConnection(IAmqpConfigReader amqpConfigReader = null, ISymmetricalEncryption symmetricalEncryption = null)
     : base(amqpConfigReader, new RabbitConnectionStringParse(), symmetricalEncryption)
 {
 }