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