public static ITry <string, INonEmptyEnumerable <Error> > LengthInRange(string value, int min, int max) { var nonNullValue = ObjectValidations.NotNull(value); return(nonNullValue.FlatMap(v => { var validLength = IntValidations.InRange(v.Length, min: min, max: max); return validLength.Map(val => v).MapError(e => Error.Create($"Length must be between {min} and {max}")); })); }
public static ITry <PositiveInt, INonEmptyEnumerable <Error> > Create(int value) { return(IntValidations.HigherThan(value, 0).Map(v => new PositiveInt(v))); }