Beispiel #1
0
        public void SendVerifyCode(string mobile, VerifyType verifyType)
        {
            ExceptionHelper.ThrowIfNullOrWhiteSpace(mobile, "mobile");
            ExceptionHelper.ThrowIfTrue(!StringRule.VerifyMobile(mobile), "mobile", "手机号码格式不正确");
            switch (verifyType)
            {
            case VerifyType.Common:
            case VerifyType.FormatPwd:
                if (!_UserRepository.Entities.Any(u => u.mobile == mobile.Trim()))
                {
                    throw new Flh.FlhException(ErrorCode.NotExists, "该手机未注册");
                }
                break;

            case VerifyType.ChangeMobile:
            case VerifyType.Register:
                if (_UserRepository.Entities.Any(u => u.mobile == mobile.Trim()))
                {
                    throw new Flh.FlhException(ErrorCode.Exists, "该手机已被注册");
                }
                break;
            }
            var entity = GetValidityCode(mobile);

            var message = String.Empty;

            if (entity == null || entity.createDate.AddMinutes(10) < DateTime.Now)
            {
                var code = CreateCode();

                using (var scope = new TransactionScope())
                {
                    _VerifyCodeRepository.Delete(vc => vc.mobile == mobile);
                    _VerifyCodeRepository.Add(entity = new Data.VerifyCode
                    {
                        code       = code,
                        createDate = DateTime.Now,
                        mobile     = mobile,
                        endDate    = DateTime.Now.AddMinutes(30)
                    });

                    _VerifyCodeRepository.SaveChanges();

                    SendSmsMessage(mobile, verifyType, code);

                    scope.Complete();
                }
            }
            else
            {
                SendSmsMessage(mobile, verifyType, entity.code);
            }
        }
Beispiel #2
0
        public void SendVerifyCode(string mobile, VerifyType verifyType)
        {
            ExceptionHelper.ThrowIfNullOrWhiteSpace(mobile, "mobile");
            ExceptionHelper.ThrowIfTrue(!StringRule.VerifyMobile(mobile), "mobile", "手机号码格式不正确");
            switch (verifyType)
            {
                case VerifyType.Common:
                case VerifyType.FormatPwd:
                    if (!_UserRepository.Entities.Any(u => u.mobile == mobile.Trim()))
                        throw new Flh.FlhException(ErrorCode.NotExists, "该手机未注册");
                    break;
                case VerifyType.ChangeMobile:
                case VerifyType.Register:
                    if (_UserRepository.Entities.Any(u => u.mobile == mobile.Trim()))
                        throw new Flh.FlhException(ErrorCode.Exists, "该手机已被注册");
                    break;
            }
            var entity = GetValidityCode(mobile);

            var message = String.Empty;
            if (entity == null || entity.createDate.AddMinutes(10) < DateTime.Now)
            {
                var code = CreateCode();

                using (var scope = new TransactionScope())
                {
                    _VerifyCodeRepository.Delete(vc => vc.mobile == mobile);
                    _VerifyCodeRepository.Add(entity = new Data.VerifyCode
                    {
                        code = code,
                        createDate = DateTime.Now,
                        mobile = mobile,
                        endDate = DateTime.Now.AddMinutes(30)
                    });

                    _VerifyCodeRepository.SaveChanges();

                    SendSmsMessage(mobile, verifyType, code);

                    scope.Complete();
                }
            }
            else
            {
                SendSmsMessage(mobile, verifyType, entity.code);
            }
        }