/// <summary>
        /// 预约信息是否在黑名单中
        /// </summary>
        /// <param name="reservation">预约信息</param>
        /// <param name="message">错误信息</param>
        /// <returns></returns>
        private bool IsReservationInfoInBlockList(ReservationViewModel reservation, out string message)
        {
            var blockList = _bllBlockEntity.Select(b => b.IsActive);

            message = "";
            //预约人手机号
            if (blockList.Any(b => b.BlockValue.Equals(reservation.ReservationPersonPhone)))
            {
                message = "手机号已被拉黑";
                return(true);
            }
            //预约人IP地址
            // TODO: need debug
            var ip = DependencyResolver.Current.GetService <IHttpContextAccessor>().HttpContext.Connection.RemoteIpAddress.ToString();

            if (blockList.Any(b => b.BlockValue.Equals(ip)))
            {
                message = "IP地址已被拉黑";
                return(true);
            }
            //预约人姓名
            if (blockList.Any(b => b.BlockValue.Equals(reservation.ReservationPersonName)))
            {
                message = "预约人姓名已经被拉黑";
                return(true);
            }
            return(false);
        }
Esempio n. 2
0
        /// <summary>
        /// 预约信息是否在黑名单中
        /// </summary>
        /// <param name="reservation">预约信息</param>
        /// <param name="message">错误信息</param>
        /// <returns></returns>
        private bool IsReservationInfoInBlockList(ReservationViewModel reservation, out string message)
        {
            var blockList = RedisManager.CacheClient.GetOrSet(Constants.BlackListCacheKey,
                                                              () => _bllBlockEntity.Select(_ => _.IsActive),
                                                              TimeSpan.FromDays(1));

            message = string.Empty;
            //预约人手机号
            if (blockList.Any(b => b.BlockValue.Equals(reservation.ReservationPersonPhone)))
            {
                message = "手机号已被拉黑";
                return(true);
            }
            //预约人IP地址
            var ip = DependencyResolver.Current.GetService <IHttpContextAccessor>().HttpContext.GetUserIP();

            if (blockList.Any(b => b.BlockValue.Equals(ip)))
            {
                message = "IP地址已被拉黑";
                return(true);
            }
            //预约人姓名
            if (blockList.Any(b => b.BlockValue.Equals(reservation.ReservationPersonName)))
            {
                message = "预约人姓名已经被拉黑";
                return(true);
            }
            return(false);
        }