public async Task <IActionResult> Index([FromServices] IImageParameterFixer parameterFixer, [FromRoute] ImageParameter parameter) { parameter = parameter.GetFixed(parameterFixer); var relativePath = parameter.GetRelativePath(); var physicalPath = Path.GetFullPath(relativePath); IFileInfo fileInfo; var contentType = "image/" + parameter.Format; if (System.IO.File.Exists(physicalPath)) { fileInfo = _fileProvider.GetFileInfo(relativePath); return(File(fileInfo.CreateReadStream(), contentType)); } var physicalFolder = Path.GetDirectoryName(physicalPath); if (!Directory.Exists(physicalFolder)) { Directory.CreateDirectory(physicalFolder); } var imageData = await _fileStore.GetImageData(Guid.Parse(parameter.Id)); if (imageData == null) { return(NotFound()); } _imageService.ImageCastAndSaveToFile(imageData.Bytes, parameter.Size, parameter.ImageFormat, physicalPath); fileInfo = _fileProvider.GetFileInfo(relativePath); return(File(fileInfo.CreateReadStream(), contentType)); }
public ImageParameter GetFixed(IImageParameterFixer fixer) { return(fixer.Fix(this)); }
public ImageParameter GetFixed(IImageParameterFixer fixer) { return fixer.Fix(this); }