public async Task <IActionResult> ReadPageImageAsync(long pageId, PageImageType pageImageType) { BlobContent blobContent = await _pageService.ReadPageImageAsync(TenantId, pageId, pageImageType); if (blobContent == null) { return(NotFound()); } return(File(blobContent.Stream, blobContent.Type, blobContent.Name)); }
private long?GetBlobId(Page page, PageImageType pageImageType) { switch (pageImageType) { case PageImageType.Original: return(page.ImageBlobId); case PageImageType.Preview: return(page.PreviewImageBlobId); case PageImageType.Thumbnail: return(page.ThumbnailImageBlobId); default: return(null); } }
public async Task <BlobContent> ReadPageImageAsync(long tenantId, long pageId, PageImageType pageImageType) { Page page = await _pageRepository.ReadPageAsync(tenantId, pageId); if (page == null) { return(null); } long?blobId = GetBlobId(page, pageImageType); if (blobId == null) { return(null); } return(await _storageService.ReadBlobContentAsync(tenantId, blobId.Value, PageImagePath)); }
public async Task <BlobContent> ReadPageImageAsync(long tenantId, long pageId, PageImageType pageImageType) { try { string uri = $"{_options.Value.CoreApiBaseUrl}tenants/{tenantId}/pages/{pageId}/images/{pageImageType.ToString().ToLower()}"; using (HttpClient httpClient = new HttpClient()) { HttpResponseMessage response = await httpClient.GetAsync(uri); return(new BlobContent { Name = response.Content.Headers.ContentDisposition.FileName, Type = response.Content.Headers.ContentType.MediaType, Stream = await response.Content.ReadAsStreamAsync() }); } } catch (Exception ex) { throw new CoreClientException("Core API failed", ex); } }