コード例 #1
0
        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();
                }
            }
        }
コード例 #2
0
        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"));
        }