示例#1
0
        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));
        }
示例#2
0
        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);
            }
        }
示例#3
0
        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));
        }
示例#4
0
        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);
            }
        }