Esempio n. 1
0
        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;
        }
Esempio n. 3
0
		/// <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;
		}
Esempio n. 4
0
 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);
					}
				}
			}
		}
Esempio n. 6
0
        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");
        }
Esempio n. 7
0
        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");
        }
Esempio n. 8
0
 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);
     }
 }
Esempio n. 9
0
 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;
     }
 }