Example #1
0
        public async Task Invoke(HttpContext httpContext, ISignalRTypesBuilder signalRTypesBuilder)
        {
            var httpMethod = httpContext.Request.Method;

            var path = httpContext.Request.Path.Value;

            if (httpMethod == "GET" && Regex.IsMatch(path, $"^/?{Regex.Escape(options.RoutePath)}/?$", RegexOptions.IgnoreCase))
            {
                var settings  = new SignalrTypeGeneratorSettings(_jsonSerializerSettings);
                var generator = new SignalrTypeGenerator(settings);

                var document = await generator.GenerateForHubsAsync(signalRTypesBuilder);

                var json = document.ToJson();

                httpContext.Response.StatusCode = StatusCodes.Status200OK;
                httpContext.Response.Headers.Add("Content-Type", "application/json; charset=utf-8");
                await httpContext.Response.WriteAsync(json, Encoding.UTF8);

                return;
            }

            await _next(httpContext);

            //await context.Response.WriteAsync(_version);

            //we're all done, so don't invoke next middleware
        }
Example #2
0
 public SignalrTypeGenerator(SignalrTypeGeneratorSettings settings)
 {
     _settings = settings;
 }
Example #3
0
 public SignalrTypeSchemaResolver(SignalrTypeDocument document, SignalrTypeGeneratorSettings settings)
     : base(document, settings)
 {
     _document = document;
     _settings = settings;
 }