Inject IAddinConfiguration to OcrClient
This commit is contained in:
parent
2026e2a4e2
commit
e1289aebbc
@ -4,5 +4,5 @@ namespace RhSolutions.Services;
|
|||||||
|
|
||||||
public interface IOcrClient
|
public interface IOcrClient
|
||||||
{
|
{
|
||||||
public Task<IEnumerable<object[,]>> ProcessImage(string base64Image, string xFolderId, string apiKey);
|
public Task<IEnumerable<object[,]>> ProcessImage(string base64Image);
|
||||||
}
|
}
|
||||||
|
@ -9,13 +9,17 @@ namespace RhSolutions.Services;
|
|||||||
public class YandexOcrClient : IOcrClient
|
public class YandexOcrClient : IOcrClient
|
||||||
{
|
{
|
||||||
private readonly HttpClient _httpClient;
|
private readonly HttpClient _httpClient;
|
||||||
public YandexOcrClient(HttpClient httpClient)
|
private readonly string _apiKey;
|
||||||
|
private readonly string _xFolderId;
|
||||||
|
public YandexOcrClient(HttpClient httpClient, IAddInConfiguration configuration)
|
||||||
{
|
{
|
||||||
_httpClient = httpClient;
|
_httpClient = httpClient;
|
||||||
_httpClient.BaseAddress = new Uri("https://ocr.api.cloud.yandex.net/ocr/v1/");
|
_httpClient.BaseAddress = new Uri("https://ocr.api.cloud.yandex.net/ocr/v1/");
|
||||||
|
_apiKey = configuration["apiKey"];
|
||||||
|
_xFolderId = configuration["x-folder-id"];
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<IEnumerable<object[,]>> ProcessImage(string base64Image, string xFolderId, string apiKey)
|
public async Task<IEnumerable<object[,]>> ProcessImage(string base64Image)
|
||||||
{
|
{
|
||||||
using StringContent jsonContent = new(
|
using StringContent jsonContent = new(
|
||||||
JsonConvert.SerializeObject(new
|
JsonConvert.SerializeObject(new
|
||||||
@ -27,8 +31,8 @@ public class YandexOcrClient : IOcrClient
|
|||||||
}),
|
}),
|
||||||
Encoding.UTF8,
|
Encoding.UTF8,
|
||||||
"application/json");
|
"application/json");
|
||||||
_httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Api-Key", apiKey);
|
_httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Api-Key", _apiKey);
|
||||||
_httpClient.DefaultRequestHeaders.Add("x-folder-id", xFolderId);
|
_httpClient.DefaultRequestHeaders.Add("x-folder-id", _xFolderId);
|
||||||
_httpClient.DefaultRequestHeaders.Add("x-data-logging-enable", "true");
|
_httpClient.DefaultRequestHeaders.Add("x-data-logging-enable", "true");
|
||||||
|
|
||||||
using HttpResponseMessage response = await _httpClient.PostAsync("recognizeText", jsonContent);
|
using HttpResponseMessage response = await _httpClient.PostAsync("recognizeText", jsonContent);
|
||||||
|
@ -27,7 +27,7 @@ internal class OcrTool : ITool
|
|||||||
|
|
||||||
if (shot != null)
|
if (shot != null)
|
||||||
{
|
{
|
||||||
IEnumerable<object[,]> tables = await client.ProcessImage(shot, xFolderId, apiKey);
|
IEnumerable<object[,]> tables = await client.ProcessImage(shot);
|
||||||
if (tables != null)
|
if (tables != null)
|
||||||
{
|
{
|
||||||
foreach (var table in tables)
|
foreach (var table in tables)
|
||||||
|
Loading…
Reference in New Issue
Block a user