/// <summary>
        /// 验证渠道信息
        /// </summary>
        /// <param name="channelId"></param>
        /// <param name="configDto"></param>
        /// <returns></returns>
        internal static bool ValidateWorkChannel(int channelId, out WeixinConfigDTO configDto)
        {
            configDto = GetWeixinConfigDTOAsync(channelId).Result;
            var result = configDto.WxType == Enums.WeixinType.WxWork;

            return(result);
        }
        /// <summary>
        /// 获取微信基本配置信息
        /// </summary>
        /// <param name="channelId"></param>
        /// <returns></returns>
        public static async Task <WeixinConfigDTO> GetWeixinConfigDTOAsync(int channelId)
        {
            var configDto = new WeixinConfigDTO();
            var weixinDal = new DapperDALBase <WeixinConfigEntity>();

            var redisKey = string.Format("WeixinConfigEntity_{0}", channelId);
            //先从缓存中读取渠道配置信息
            var weixinConfigEntity = await RedisHelper.StringGetAsync <WeixinConfigEntity>(redisKey);

            if (weixinConfigEntity == null)
            {
                var weixinConfigEntities = await weixinDal.QueryListAsync(new { ChannelId = channelId });

                if (weixinConfigEntities != null &&
                    weixinConfigEntities.Count() > 0)
                {
                    weixinConfigEntity = weixinConfigEntities.SingleOrDefault();
                    if (weixinConfigEntity.ChannelId > 0)
                    {
                        await RedisHelper.StringSetAsync(redisKey, weixinConfigEntity);
                    }
                }
            }
            if (weixinConfigEntity == null)
            {
                configDto = ConvertToWeixinConfigDTO(weixinConfigEntity);

                return(configDto);
            }

            //这里从数据库中读取当前渠道的配置信息
            if (channelId == 1)
            {
                configDto.ChannelId = 1;
            }
            else if (channelId == 2)
            {
                configDto.ChannelId      = 2;
                configDto.AppId          = "wxf469126fc1cbdc63";
                configDto.AppSercet      = "2bb6660472c3beff87baa831201fa8ad";
                configDto.WxType         = Enums.WeixinType.WxMp;
                configDto.AgentId        = 0;
                configDto.EncodingAESKey = "OFhDh1eyfv8GYBluexZUAeLJ5gBx9yoykW45jfGX0Uu";
                configDto.Token          = "Gscoy";
            }
            else if (channelId == 3)
            {
                configDto.ChannelId      = 2;
                configDto.AppId          = "wx9a80f6e6ed2a89e6";
                configDto.AppSercet      = "KOSGE5-MGw2aLlc5X7jFClkHYoV77umBMi1LyHnt8tw";
                configDto.WxType         = Enums.WeixinType.WxWork;
                configDto.AgentId        = 15;
                configDto.EncodingAESKey = "OFhDh1eyfv8GYBluexZUAeLJ5gBx9yoykW45jfGX0Uu";
                configDto.Token          = "Gscoy";
            }


            return(configDto);
        }
        /// <summary>
        /// 转换为dto
        /// </summary>
        /// <param name="singleWeixinConfigEntity"></param>
        /// <returns></returns>
        public static WeixinConfigDTO ConvertToWeixinConfigDTO(WeixinConfigEntity singleWeixinConfigEntity)
        {
            var configDto = new WeixinConfigDTO();

            configDto.AgentId        = singleWeixinConfigEntity.AgentId;
            configDto.AppId          = singleWeixinConfigEntity.AppId;
            configDto.AppSercet      = singleWeixinConfigEntity.AppSercet;
            configDto.ChannelId      = singleWeixinConfigEntity.ChannelId;
            configDto.EncodingAESKey = singleWeixinConfigEntity.EncodingAESKey;
            configDto.Token          = singleWeixinConfigEntity.Token;
            return(configDto);
        }