private static IResult <PersonPostApiModel, PersonPostApiError> ApiValidation(PersonPostApiModel model) { var apiValidation = model .ToResult(x => true, x => default(PersonPostApiError)) .Multiple( x => x.Filter( y => y.Age > 10, y => new PersonPostApiError { Message = "Age has to be older than '10'.", Model = model } ), x => x.Flatten( y => ValidateName(y.FirstName), s => new PersonPostApiError { Message = s, Model = model } ), x => x.Flatten( y => ValidateName(y.LastName), s => new PersonPostApiError { Message = s, Model = model } ) ); return(apiValidation.Match(Result.Value <PersonPostApiModel, PersonPostApiError>, x => Result.Error <PersonPostApiModel, PersonPostApiError>( new PersonPostApiError { Errors = x.Select(y => y.Message).ToArray(), Message = "Invalid Api Validation.", Model = model } ))); }
private static Result <PersonPostApiModel, PersonPostApiError> ApiValidation(PersonPostApiModel model) { var apiValidation = model .ToResult <PersonPostApiModel, PersonPostApiError>() .Multiple( x => x.Filter(y => y.Age > 10, () => new PersonPostApiError { Message = "Age needs to be more than 10", Model = model }), x => x.Flatten(y => ValidateName(y.FirstName), s => new PersonPostApiError { Message = s, Model = model }), x => x.Flatten(y => ValidateName(y.LastName), s => new PersonPostApiError { Message = s, Model = model }) ); return(apiValidation.Match(x => x, x => { return (Result <PersonPostApiModel, PersonPostApiError>) new PersonPostApiError { Errors = x.Select(y => y.Message).ToArray(), Message = "Invalid Api Validation.", Model = model }; })); }