/// <summary>
        /// Get the view Model to display a Reset Password Form and Form result
        /// </summary>
        /// <param name="param">Builder params <see cref="GetResetPasswordViewModelParam"/></param>
        /// <returns>
        /// The view model to display the Reset Password Form
        /// </returns>
        protected virtual ResetPasswordViewModel GetResetPasswordViewModel(GetResetPasswordViewModelParam param)
        {
            var viewModel = ViewModelMapper.MapTo <ResetPasswordViewModel>(param.Customer, param.CultureInfo) ?? new ResetPasswordViewModel();

            viewModel.Status            = param.Status.HasValue ? param.Status.Value.ToString("G") : string.Empty;
            viewModel.ForgotPasswordUrl = param.ForgotPasswordUrl;
            viewModel.ReturnUrl         = param.ReturnUrl;

            SetPasswordValidationRules(viewModel);

            if (param.Customer == null)
            {
                viewModel.Status = MyAccountStatus.InvalidTicket.ToString("G");
            }

            return(viewModel);
        }
        /// <summary>
        /// Get the view Model to display a Reset Password Form and Form result
        /// </summary>
        /// <param name="param">Builder params <see cref="GetResetPasswordViewModelParam"/></param>
        /// <returns>
        /// The view model to display the Reset Password Form
        /// </returns>
        protected virtual ResetPasswordViewModel GetResetPasswordViewModel(GetResetPasswordViewModelParam param)
        {
            var viewModel = ViewModelMapper.MapTo <ResetPasswordViewModel>(param.Customer, param.CultureInfo) ?? new ResetPasswordViewModel();

            viewModel.Status = param.Status.HasValue ? param.Status.Value.ToString("G") : string.Empty;
            viewModel.MinRequiredPasswordLength            = MembershipProvider.MinRequiredPasswordLength;
            viewModel.MinRequiredNonAlphanumericCharacters = MembershipProvider.MinRequiredNonAlphanumericCharacters;
            viewModel.PasswordRegexPattern = CreatePasswordRegexPattern().ToString();
            viewModel.ForgotPasswordUrl    = param.ForgotPasswordUrl;
            viewModel.ReturnUrl            = param.ReturnUrl;

            if (param.Customer == null)
            {
                viewModel.Status = MyAccountStatus.InvalidTicket.ToString("G");
            }

            return(viewModel);
        }