Ejemplo n.º 1
0
        private MiddlewareChainResult runTestMiddlwareChain(TestMessage tm)
        {
            var middleware = new MiddlewareChain <TestMessage>();
            var result     = new MiddlewareChainResult();

            middleware.Use(new Middleware <TestMessage>((ctx, next) =>
            {
                result.Handled++;
                next();
            }));
            middleware.Use(new Middleware <TestMessage>((ctx, next) =>
            {
                result.Handled++;
                if (ctx.Text.StartsWith("/"))
                {
                    next();
                }
            }));
            middleware.Use(new Middleware <TestMessage>((ctx, next) =>
            {
                if (ctx.Text.StartsWith("/adm") && !ctx.User.IsAdmin)
                {
                    result.Rejected++;
                }
                else
                {
                    result.Handled++;
                }
            }));

            middleware.Execute(tm);
            return(result);
        }