Beispiel #1
0
        public static PipelineOptionsBuilder UseValidation(this PipelineOptionsBuilder builder)
        {
            builder.Use(() =>
            {
                return(Middleware);

                async Task <MessageResult> Middleware(MessageContext context, MessageDelegate next)
                {
                    var validation = new ValidationContext(context.Message, context.Services, null);
                    var errors     = new List <ValidationResult>();

                    Validator.TryValidateObject(context.Message, validation, errors, true);

                    if (errors.Count > 0)
                    {
                        return(new FailedValidationResult(errors));
                    }

                    return(await next(context).ConfigureAwait(false));
                }
            });


            return(builder);
        }
        public static PipelineOptionsBuilder UseInMemory(this PipelineOptionsBuilder builder)
        {
            builder.Use(() =>
            {
                return(Middleware);

                Task <MessageResult> Middleware(MessageContext context, MessageDelegate next)
                => Handle((dynamic)context.Message, context);
            }, true);

            return(builder);
        }