Пример #1
0
        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
            }
                                           )));
        }
Пример #2
0
        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
                };
            }));
        }