/// <summary> /// Used for make image url to be base64 url which has header id means has multiple images /// </summary> /// <param name="id">header id => product id</param> /// <param name="item">Model has image</param> /// <param name="fileUtility">file utility helper</param> /// <param name="folderName">folder group name => Manufacturer, Product, Category</param> /// <param name="cancellationToken"></param> /// <returns>base64 format image model</returns> public static async Task <T> GetImageBase64UrlAsync(string id, T item, IFileUtility fileUtility, string folderName, CancellationToken cancellationToken) { var imageFileExtension = Path.GetExtension(item.ImageName); var buffer = await fileUtility.ReadFileAsync(folderName + "/" + id, item.ImageName, cancellationToken); item.ImageUrl = "data:image/" + imageFileExtension.Substring(1) + ";base64," + Convert.ToBase64String(buffer); return(item); }
public async Task <IActionResult> GetManufacturerImageAsync(int id, CancellationToken cancellationToken) { if (id <= 0) { return(BadRequest(new { Message = $"Invalid Manufacturer Id." })); } var item = await _catalogContext.Manufacturers .SingleOrDefaultAsync(ci => ci.Id == id, cancellationToken); if (item != null) { var imageFileExtension = Path.GetExtension(item.ImageName); var mimetype = FileHelper.GetImageMimeTypeFromImageFileExtension(imageFileExtension); var buffer = await _fileUtility.ReadFileAsync("Manufacturer/" + item.Id, item.ImageName, cancellationToken); return(File(buffer, mimetype)); } return(NotFound()); }