public async Task <IActionResult> Execute(HttpContext httpContext) { var e = await _DynamicManifestReader.Execute(); var r = new BinaryContentResponse { LastModified = e.Release, PublishingId = e.PublishingId, ContentTypeName = e.ContentTypeName, Content = e.Content, SignedContentTypeName = e.SignedContentTypeName, SignedContent = e.SignedContent }; return(new OkObjectResult(r)); }
/// <summary> /// /// </summary> /// <param name="httpContext"></param> /// <returns></returns> /// <exception cref="InvalidOperationException"></exception> public async Task Execute(HttpContext httpContext) { var e = await _DynamicManifestReader.Execute(); if (e == null) { throw new InvalidOperationException(); } if (!httpContext.Request.Headers.TryGetValue("accept", out var contentList)) { httpContext.Response.StatusCode = 415; return; } if (contentList.Contains(MediaTypeNames.Application.Json)) { httpContext.Response.ContentLength = e.Content.Length; httpContext.Response.StatusCode = 200; httpContext.Response.Headers.Add("content-type", e.ContentTypeName); await httpContext.Response.BodyWriter.WriteAsync(e.Content); return; } if (contentList.Contains(MediaTypeNames.Application.Zip)) { httpContext.Response.ContentLength = e.SignedContent.Length; httpContext.Response.StatusCode = 200; httpContext.Response.Headers.Add("content-type", e.SignedContentTypeName); httpContext.Response.Headers.Add("etag", e.PublishingId); await httpContext.Response.BodyWriter.WriteAsync(e.SignedContent); return; } httpContext.Response.StatusCode = 415; }