/// <summary> /// Creates a new math captcha values with the specified arguments. /// </summary> /// <param name="controller"> /// The specified <see cref="ControllerBase" />. /// </param> /// <param name="parameters">The specified parameters, if any.</param> /// <returns> /// An instance of <see cref="IUpdateInfoModel" />. /// </returns> public static IUpdateInfoModel GenerateMathCaptchaValue(this ControllerBase controller, params ParameterModel[] parameters) { List <ParameterModel> list = CaptchaUtils.GetParameters(parameters); list.Add(new ParameterModel(DefaultCaptchaManager.MathCaptchaAttribute, true)); var container = new CombinedParameterContainer(new ParameterModelContainer(list), new RequestParameterContainer(controller.ControllerContext.HttpContext.Request)); return(controller.GetCaptchaManager().GenerateNew(controller, container)); }
/// <summary> /// Makes the captcha "intelligent". /// </summary> /// <param name="captcha"> /// The specified <see cref="ICaptcha" />. /// </param> /// <param name="parameters">The specified parameters, if any.</param> /// <returns> /// An instance of <see cref="ICaptcha" />. /// </returns> public static ICaptcha AsIntelligent(this ICaptcha captcha, params ParameterModel[] parameters) { List <ParameterModel> list = CaptchaUtils.GetParameters(parameters); var container = new CombinedParameterContainer(new ParameterModelContainer(list), captcha.BuildInfo.ParameterContainer); var captchaManager = CaptchaUtils.CaptchaManagerFactory(container); if (captchaManager.IntelligencePolicy == null) { throw new NullReferenceException("The IntelligencePolicy property is null."); } return(captchaManager.IntelligencePolicy.MakeIntelligent(captchaManager, captcha, container)); }