static void Main(string[] args) { var order = new Order { Product = new Product { Name = "Widget", MinQuantity = 5, MaxQuantity = 100 }, Quantity = 50 }; var runner = new ValidatorRunner(new CachedValidationRegistry()); if (runner.IsValid(order)) { Console.WriteLine("The order is valid!"); } else { ErrorSummary summary = runner.GetErrorSummary(order); foreach (var invalidProperty in summary.InvalidProperties) { Console.WriteLine("{0} is invalid because:", invalidProperty); foreach (var error in summary.GetErrorsForProperty(invalidProperty)) { Console.WriteLine("\t * {0}", error); } } } Console.ReadLine(); }
public override object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext) { var result = base.BindModel(controllerContext, bindingContext); if (result == null) { return result; } var runner = new ValidatorRunner(new CachedValidationRegistry()); if (runner.IsValid(result)) { return result; } var summary = runner.GetErrorSummary(result); var modelState = bindingContext.ModelState; foreach (var invalidProperty in summary.InvalidProperties) { foreach (var error in summary.GetErrorsForProperty(invalidProperty)) { modelState.AddModelError(invalidProperty, error); } } return result; }
/// <errorSummary> /// Determines whether the specified instance is valid. /// </errorSummary> /// <param name="instance">The instance.</param> /// <param name="fieldValue">The field value.</param> /// <returns> /// <c>true</c> if the specified instance is valid; otherwise, <c>false</c>. /// </returns> public override bool IsValid(object instance, object fieldValue) { ValidatorRunner runner = new ValidatorRunner(validationRegistry.BaseRegistry); bool valid = runner.IsValid(instance); if (!valid) errorSummary = runner.GetErrorSummary(instance); return valid; }
public void Index([DataBind("ContactRequest")] ContactRequest request) { var runner = new ValidatorRunner(new CachedValidationRegistry()); if (!runner.IsValid(request)) { ErrorSummary summary = runner.GetErrorSummary(request); PropertyBag["ContactRequest"] = request; PropertyBag["error"] = summary; } else { var parameter = new Dictionary<string, object> { { "request", request } }; var message = RenderMailMessage("contact", null, (IDictionary)parameter); message.Encoding = System.Text.Encoding.UTF8; DeliverEmail(message); RedirectToAction("Thanks"); } }
internal static void AddNestedPropertyValidationErrorMessages(List<string> errorMessages, object instance, ValidatorRunner runner) { foreach (PropertyInfo propinfo in GetNestedPropertiesToValidate(instance)) { object propval = propinfo.GetValue(instance, null); if (propval != null) { ErrorSummary summary = runner.GetErrorSummary(propval); if (summary != null) { errorMessages.AddRange(summary.ErrorMessages); } } } }
public ActionResult Login(string username, string password, string redirectUrl) { var loginData = new LoginData(username, password); var validationRunner = new ValidatorRunner(new CachedValidationRegistry()); if (!validationRunner.IsValid(loginData)) { AddErrorMessages(validationRunner.GetErrorSummary(loginData).ErrorMessages); return RedirectToAction("Login"); } if (!authenticationService.SignIn(username, password)) { AddErrorMessage("Invalid Login"); return RedirectToAction("Login"); } if (redirectUrl != null) return Redirect(redirectUrl); return RedirectToAction("Index", "Account"); }
public ActionResult Register(RegistrationData registrationData) { var validationRunner = new ValidatorRunner(new CachedValidationRegistry()); if (!validationRunner.IsValid(registrationData)) { // there were errors, report them back to the user foreach (var errorMessage in validationRunner.GetErrorSummary(registrationData).ErrorMessages) AddErrorMessage(errorMessage); TempData.Add(registrationData); return RedirectToAction("Register"); } Member member = memberService.GetByUsername(registrationData.UserName); if (member != null) { userSession.PushUserMessage(FlashMessage.MessageType.Error, "A user with that username already exists, please try again"); TempData.Add(registrationData); return RedirectToAction("Register"); } member = new Member { Username = registrationData.UserName, Email = registrationData.Email, PasswordSalt = cryptographer.CreateSalt(), FirstName = registrationData.FirstName, LastName = registrationData.LastName }; member.Password = cryptographer.Hash(registrationData.Password, member.PasswordSalt); memberService.Add(member); authenticator.SignIn(member); return RedirectToAction("Index"); }
public void PersonalInformation([DataBind("Personal")] PersonalInformationViewModel viewModel) { Flash["categories"] = Category.All; var runner = new ValidatorRunner(new CachedValidationRegistry()); if (runner.IsValid(viewModel)) { Session["PersonalInfo"] = viewModel; RedirectToAction("Thanks"); } else { Flash["Personal"] = viewModel; Flash["summary"] = runner.GetErrorSummary(viewModel); } }
public void AccountInformation([DataBind("Register")] AccountInformationViewModel viewModel) { ValidatorRunner runner = new ValidatorRunner(new CachedValidationRegistry()); if (runner.IsValid(viewModel)) { Session["AccountInfo"] = viewModel; RedirectToAction("PersonalInformation"); } else { var summary = runner.GetErrorSummary(viewModel); Flash["summary"] = summary; Flash["Register"] = viewModel; } }