public async Task Invoke(HttpContext context) { var routeValues = new RouteValueDictionary(); if (_isReportingEnabled && _templateMatcher.TryMatch(context.Request.Path, routeValues)) { var keys = _factory.GetMissingResources(); using (var ms = new MemoryStream()) { await _formatter.WriteAsync(ms, keys); ms.Position = 0; context.Response.StatusCode = 200; context.Response.ContentType = _formatter.ContentTypeProduced; await ms.CopyToAsync(context.Response.Body); } } else { // Call the next delegate/middleware in the pipeline await this._next(context); } }
public override void Process(TagHelperContext context, TagHelperOutput output) { var l = _factory.GetMissingResources().Length; output.TagName = l == 0 ? "span" : "a"; output.Content.SetContent($"{ l } keys missing"); output.TagMode = TagMode.StartTagAndEndTag; if (l >= 0) { output.Attributes.Add("href", $"/{ _reportPath }"); } }