Beispiel #1
0
        public async Task InvokeAsync(HttpContext context, PathHandler pathHandler)
        {
            var path = context.Request.Path;

            if (path == scriptPath)
            {
                context.Response.Headers.Add("Content-Type", "text/javascript;charset=UTF-8");
                await context.Response.WriteAsync(JsContent.allContent);

                return;
            }

            if (path.StartsWithSegments(startPath))
            {
                string body = "";
                using (var stream = new StreamReader(context.Request.Body))
                {
                    body = stream.ReadToEnd();
                }

                var result = pathHandler.Execute(path.Value.Substring(startPath.Length + 1), JavaScriptHandler.Create(body));
                if (result)
                {
                    if (result.Data == null)
                    {
                        context.Response.StatusCode = 204;
                    }
                    else
                    {
                        context.Response.StatusCode = 200;
                        await context.Response.WriteAsync(JsonConvert.SerializeObject(result.Data));
                    }
                }
                else
                {
                    context.Response.StatusCode = 404;
                }
                return;
            }

            await _Next(context);

            //var found = pathMappings[context.Request.Path];
            //if (found == null) await _Next(context);
            //else
            //{
            //    found(context);
            //}
        }