public async Task OnActionExecutionAsync(ActionExecutingContext context, ActionExecutionDelegate next) { var ctx = context.HttpContext; if (CheckSupportedMethods(ctx)) { var(imageName, imagePath) = await GetImageSpecsAsync(ctx); if (File.Exists(imagePath)) { _logger.LogInformation("Returned {ImageName} from cache", _imageSource.ImageNameWithExtension(imageName)); var image = _imageSource.GenerateImageTag(imagePath); GenerateCacheHeadersAsync(ctx, image); // await GenerateETagHeaderAsync(ctx); context.Result = new ContentResult { Content = image, ContentType = "text/html" }; } else { await next(); } } }
public async Task <IActionResult> Get([FromRoute] DimensionsModel dimensionsModel) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var dimensions = new Tuple <int, int>(dimensionsModel.Width, dimensionsModel.Height); var result = await _fakePhotoService.GetBytePhotoByDimensionsAsync(dimensions); var imageFullPath = await _imageSourceService.WriteImageFileAsync(dimensions, result); var imageSource = _imageSourceService.GenerateImageTag(imageFullPath); return(Content(imageSource, "text/html")); }