Ejemplo n.º 1
0
        /// <summary>
        /// Extension method to use the JsonRpc router in the Asp.Net pipeline
        /// </summary>
        /// <param name="app"><see cref="IApplicationBuilder"/> that is supplied by Asp.Net</param>
        /// <param name="options">Auto routing configuration</param>
        /// <returns><see cref="IApplicationBuilder"/> that includes the Basic auth middleware</returns>
        public static IApplicationBuilder UseJsonRpc(this IApplicationBuilder app, RpcAutoRoutingOptions options)
        {
            if (app == null)
            {
                throw new ArgumentNullException(nameof(app));
            }
            if (options == null)
            {
                throw new ArgumentNullException(nameof(options));
            }
            IRpcRouteProvider routeProvider = new RpcAutoRouteProvider(Options.Create(options));

            return(app.UseJsonRpc(routeProvider));
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Extension method to use the JsonRpc router in the Asp.Net pipeline
        /// </summary>
        /// <param name="app"><see cref="IApplicationBuilder"/> that is supplied by Asp.Net</param>
        /// <param name="configureOptions">Optional action to configure auto routing</param>
        /// <returns><see cref="IApplicationBuilder"/> that includes the Basic auth middleware</returns>
        public static IApplicationBuilder UseJsonRpc(this IApplicationBuilder app, Action <RpcAutoRoutingOptions> configureOptions = null)
        {
            if (app == null)
            {
                throw new ArgumentNullException(nameof(app));
            }

            var options = new RpcAutoRoutingOptions();

            configureOptions?.Invoke(options);
            IRpcRouteProvider routeProvider = new RpcAutoRouteProvider(Options.Create(options));

            return(app.UseJsonRpc(routeProvider));
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Extension method to use the JsonRpc router in the Asp.Net pipeline
        /// </summary>
        /// <param name="app"><see cref="IApplicationBuilder"/> that is supplied by Asp.Net</param>
        /// <param name="configureOptions">Action to configure auto route provider options</param>
        /// <returns><see cref="IApplicationBuilder"/> that includes the Basic auth middleware</returns>
        public static IApplicationBuilder UseJsonRpc(this IApplicationBuilder app, Action <RpcAutoRoutingOptions> configureOptions = null)
        {
            if (app == null)
            {
                throw new ArgumentNullException(nameof(app));
            }

            var options = new RpcAutoRoutingOptions();

            configureOptions?.Invoke(options);
            IRpcRouteProvider routeProvider = new RpcAutoRouteProvider(options);

            RpcRouter router = ActivatorUtilities.CreateInstance <RpcRouter>(app.ApplicationServices, routeProvider);

            return(app.UseRouter(router));
        }
Ejemplo n.º 4
0
        public static async Task RunInvokerAsync()
        {
            var authorizationService = new FakeAuthorizationService();
            var policyProvider       = new FakePolicyProvider();
            var logger            = new FakeLogger();
            var options           = Options.Create(new RpcServerConfiguration());
            var rpcRequestMatcher = new FakeRequestMatcher();
            var invoker           = new DefaultRpcInvoker(authorizationService, policyProvider, logger, options, rpcRequestMatcher);

            var              request         = new RpcRequest("Ping");
            const string     path            = "Test";
            var              routingOptions  = new RpcAutoRoutingOptions();
            var              routeProvider   = new RpcAutoRouteProvider(Options.Create(routingOptions));
            var              user            = new ClaimsPrincipal();
            IServiceProvider serviceProvider = null;
            var              routeContext    = new DefaultRouteContext(serviceProvider, user, routeProvider);

            for (int i = 0; i < 10_000_000; i++)
            {
                await invoker.InvokeRequestAsync(request, path, routeContext);
            }
        }
Ejemplo n.º 5
0
 public RpcAutoRouteProvider(RpcAutoRoutingOptions options)
 {
     this.Options = options ?? throw new ArgumentNullException(nameof(options));
 }