Quantcast
Channel: Fluent Validation for .NET
Viewing all articles
Browse latest Browse all 1917

New Post: Greater than or equals comparison against an enum with Fluent Validation?

$
0
0

Here's a sample app with your suggestion which returns the following error msg:

The type arguments for method 'FluentValidation.DefaultValidatorOptions.When<T,TProperty>(FluentValidation.IRuleBuilderOptions<T,TProperty>, System.Func<T,bool>)' cannot be inferred from the usage. Try specifying the type arguments explicitly. 

 

using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Diagnostics;
using FluentValidation;
using FluentValidation.Results;

static class MyConsoleApp
{

    public static void Main()
    {
        MyObjectValidator validator = new MyObjectValidator();
        ValidationResult results = validator.Validate(new MyObject());
        if (results.IsValid)
        {
            Console.WriteLine("Valid");
        }
        else
        {
            Console.WriteLine("Invalid");
        }
        

        
    }

}

public class MyObjectValidator : AbstractValidator<MyObject>
{

    public MyObjectValidator()
    {
        FluentValidation.DefaultValidatorOptions.When(x => x.anEnum == MyObject.MyEnum.First, () =>
        {
                                                               RuleFor(x => x.someDecimal).Equal(1);
        });
        //RuleFor(x => x.anEnum).SetValidator(new ValidatorWrapper<MyObject>()).When(x => x.anEnum == MyObject.MyEnum.First);
    }

}

public class MyObject
{

    public enum MyEnum : int
    {
        First = 0,
        Second = 1,
        Third = 2
    }

    public decimal someDecimal { get; set; }
    public MyEnum anEnum { get; set; }

    public MyObject()
    {
        anEnum = MyEnum.First;
        someDecimal = 5;
    }
}

Viewing all articles
Browse latest Browse all 1917

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>