Exemple #1
0
        public JsonRpcServer(JsonRpcOptions options, JsonRpcRequestDelegate handler, ILogger <JsonRpcServer> logger)
        {
            _options = options ?? throw new ArgumentNullException(nameof(options));
            _handler = handler ?? throw new ArgumentNullException(nameof(handler));
            _logger  = logger ?? throw new ArgumentNullException(nameof(logger));

            Methods = options.Methods;

            Serializer = JsonSerializer.Create(_options.JsonSerializerSettings);
        }
Exemple #2
0
        public static void Run(this IJsonRpcHandlerBuilder builder, JsonRpcRequestDelegate handler)
        {
            if (builder == null)
            {
                throw new ArgumentNullException(nameof(builder));
            }
            if (handler == null)
            {
                throw new ArgumentNullException(nameof(handler));
            }

            builder.Use(_ => handler);
        }
        public JsonRpcRequestDelegate Build()
        {
            JsonRpcRequestDelegate result = async(context) =>
            {
                if (context.Method == null)
                {
                    context.SetResponse(JsonRpcError.METHOD_NOT_FOUND);
                    return;
                }

                await context.Method.InvokeAsync(context);
            };

            foreach (var component in _components.Reverse())
            {
                result = component(result);
            }

            return(result);
        }