public UserSmsVerification ResendVerificationRequest(int userId, UserVerificationReason reason) { if (userId == 0) { throw new ArgumentOutOfRangeException(nameof(userId), "must not be null"); } if (reason == null) { throw new ArgumentOutOfRangeException(nameof(reason), "must not be null"); } IQueryConstraints <UserSmsVerification> constraints = new QueryConstraints <UserSmsVerification>() .Where(v => v.UserId == userId) .AndAlso(v => v.UserVerificationReasonId == reason.UserVerificationReasonId); UserSmsVerification verificationRequest = queryRepository.Find(constraints).Items.OrderBy(v => v.CreatedAt).LastOrDefault(); if (verificationRequest == null) { throw new BusinessRuleException(nameof(UserSmsVerification), ""); } verificationRequest.RenewIfNecessary(); verificationRequest.IncrementResendCount(); //Send the verification code to the user by SMS IQueryConstraints <User> userConstraints = new QueryConstraints <User>() .Where(u => u.Id == userId); User user = queryRepository.Single(userConstraints); SendSms(verificationRequest.Code, user.Mobile); return(repository.Update(verificationRequest)); }
public UserSmsVerification ResendVerificationRequest(string mobile, Guid smsRefId) { IQueryConstraints <UserSmsVerification> constraints = new QueryConstraints <UserSmsVerification>() .Where(v => v.SMSRefId == smsRefId); UserSmsVerification verificationRequest = queryRepository.Find(constraints).Items.OrderBy(v => v.CreatedAt).LastOrDefault(); if (verificationRequest == null) { throw new BusinessRuleException(nameof(UserSmsVerification), ""); } verificationRequest.RenewIfNecessary(); verificationRequest.IncrementResendCount(); SendSms(verificationRequest.Code, mobile); return(repository.Update(verificationRequest)); }