public Task <ValidationResult> ValidateAsync(RegisterUserCommand item)
        {
            var validationResult = new ValidationResult();

            if (string.IsNullOrEmpty(item.FirstName))
            {
                validationResult.AddError(nameof(item.FirstName), "Enter first name");
            }

            if (string.IsNullOrEmpty(item.LastName))
            {
                validationResult.AddError(nameof(item.LastName), "Enter last name");
            }

            if (string.IsNullOrWhiteSpace(item.Email) || !IsEmailValid(item.Email))
            {
                validationResult.AddError(nameof(item.Email), "Enter a valid email address");
            }

            if (string.IsNullOrEmpty(item.Password))
            {
                validationResult.AddError(nameof(item.Password), "Enter password");
            }
            else if (!_passwordService.CheckPasswordMatchesRequiredComplexity(item.Password))
            {
                validationResult.AddError(nameof(item.Password), "Password requires upper and lowercase letters, a number and at least 8 characters");
            }

            if (string.IsNullOrEmpty(item.ConfirmPassword))
            {
                validationResult.AddError(nameof(item.ConfirmPassword), "Re-type password");
            }
            else if (!string.IsNullOrEmpty(item.Password) && !item.ConfirmPassword.Equals(item.Password))
            {
                validationResult.AddError(nameof(item.ConfirmPassword), "Passwords don't match");
            }

            if (!item.HasAcceptedTermsAndConditions)
            {
                validationResult.AddError(nameof(item.HasAcceptedTermsAndConditions), "You need to accept the Terms and Conditions");
            }

            return(Task.FromResult(validationResult));
        }
Example #2
0
        public Task <ValidationResult> ValidateAsync(PasswordResetCommand item)
        {
            var validationResult = new ValidationResult();

            var resetCode = item.User?.SecurityCodes?.OrderByDescending(sc => sc.ExpiryTime)
                            .FirstOrDefault(sc => sc.Code.Equals(item.PasswordResetCode, StringComparison.InvariantCultureIgnoreCase) &&
                                            sc.CodeType == Domain.SecurityCodeType.PasswordResetCode);

            if (resetCode == null)
            {
                validationResult.AddError(nameof(item.PasswordResetCode), "Reset code is invalid");
            }
            else if (resetCode.ExpiryTime < DateTime.UtcNow && ConfigurationManager.AppSettings["UseStaticCodeGenerator"].Equals("false", StringComparison.CurrentCultureIgnoreCase))
            {
                validationResult.AddError(nameof(item.PasswordResetCode), "Reset code has expired");
            }

            if (string.IsNullOrEmpty(item.Password))
            {
                validationResult.AddError(nameof(item.Password), "Enter a password");
            }
            else if (!_passwordService.CheckPasswordMatchesRequiredComplexity(item.Password))
            {
                validationResult.AddError(nameof(item.Password), "Password requires upper and lowercase letters, a number and at least 8 characters");
            }

            if (string.IsNullOrEmpty(item.ConfirmPassword))
            {
                validationResult.AddError(nameof(item.ConfirmPassword), "Re-type password");
            }
            else if (!string.IsNullOrEmpty(item.Password) && !item.ConfirmPassword.Equals(item.Password))
            {
                validationResult.AddError(nameof(item.ConfirmPassword), "Passwords don’t match");
            }


            return(Task.FromResult(validationResult));
        }