StorytellerDocGen.Runner.TopicMiddleware.Invoke C# (CSharp) Method

Invoke() public method

public Invoke ( HttpContext context ) : System.Threading.Tasks.Task
context HttpContext
return System.Threading.Tasks.Task
        public Task Invoke(HttpContext context)
        {
            var path = context.Request.Path.Value.TrimStart('/');

            var response = context.Response;
            if (path == "topics.js")
            {
                response.Headers["content-type"] = "text/javascript";
                return response.WriteAsync(_topicJS);
            }

            var topic = _project.FindTopicByUrl(path);
            if (topic == null)
            {
                response.StatusCode = 404;
                response.Headers["content-type"] = "text/plain";

                return response.WriteAsync("Unknown topic");
            }

            response.Headers["cache-control"] = "no-cache, no-store, must-revalidate";
            response.Headers["pragma"] = "no-cache";
            response.Headers["expires"] = "0";

            var html = GenerateHtml(topic);

            response.Headers["content-type"] = "text/html";

            return response.WriteAsync(html);
        }