103 lines
4.6 KiB
C#
103 lines
4.6 KiB
C#
using LCU.Library.Internal.DocumentIngestorModels.Entities;
|
|
using LCU.Library.Internal.LcuHttpClient.HttpRequest;
|
|
using LCU.Library.Internal.Security.Service;
|
|
using LCU.WebApps.Internal.DocumentManager.Authentication;
|
|
using LCU.WebApps.Internal.DocumentManager.Configurations;
|
|
using Serilog;
|
|
namespace LCU.WebApps.Internal.DocumentManager.Services;
|
|
|
|
public class QueueDocumentReprocessingService : IDocumentReprocessingService
|
|
{
|
|
private readonly IPostRequest _postRequest;
|
|
private readonly DocumentIngestorApiConfiguration _documentIngestorApiConfiguration;
|
|
private readonly AuthenticationHelper _authenticationHelper;
|
|
private readonly IAzureAdAuthorizationService _azureAdAuthorizationService;
|
|
|
|
public QueueDocumentReprocessingService(IPostRequest postRequest,
|
|
DocumentIngestorApiConfiguration documentIngestorApiConfiguration,
|
|
AuthenticationHelper authenticationHelper,
|
|
IAzureAdAuthorizationService azureAdAuthorizationService)
|
|
{
|
|
_postRequest = postRequest;
|
|
_documentIngestorApiConfiguration = documentIngestorApiConfiguration;
|
|
_authenticationHelper = authenticationHelper;
|
|
_azureAdAuthorizationService = azureAdAuthorizationService;
|
|
}
|
|
|
|
public async Task QueueDocumentReprocessing(int documentProcessingInfoId)
|
|
{
|
|
try
|
|
{
|
|
var url = _documentIngestorApiConfiguration.
|
|
QueueReprocessDocumentByIdEndpointUrl.Replace("{documentProcessingInfoId}", documentProcessingInfoId.ToString())
|
|
.Replace("{userName}", _azureAdAuthorizationService.GetUserName());
|
|
|
|
var headers = _authenticationHelper.CreateApiSecurityHeaders(new Dictionary<string, string>());
|
|
|
|
await _postRequest.Async<string>(new Uri(url), "", headers);
|
|
}
|
|
catch (Exception exception)
|
|
{
|
|
Log.Error(exception, "Error Queueing Document Processing Request." +
|
|
$"DocumentProcessingInfoId:{documentProcessingInfoId}");
|
|
throw;
|
|
}
|
|
}
|
|
|
|
public async Task QueueDocumentReprocessingWithOverride(OwnerOverrideInfo ownerOverrideInfo)
|
|
{
|
|
try
|
|
{
|
|
ownerOverrideInfo.UserName = _azureAdAuthorizationService.GetUserName();
|
|
var headers = _authenticationHelper.CreateApiSecurityHeaders(new Dictionary<string, string>());
|
|
|
|
await _postRequest.Async<OwnerOverrideInfo>(new Uri(_documentIngestorApiConfiguration.QueueReprocessDocumentWithOverrideByIdEndpointUrl),
|
|
ownerOverrideInfo,
|
|
headers);
|
|
}
|
|
catch (Exception exception)
|
|
{
|
|
Log.Error(exception, "Error Queue Document Reprocessing With Override. " +
|
|
$"DocumentProcessingInfoId:{ownerOverrideInfo.DocumentProcessingInfoId}");
|
|
throw;
|
|
}
|
|
}
|
|
|
|
public async Task QueueDocumentReprocessingAllCriticalFailures()
|
|
{
|
|
try
|
|
{
|
|
var uri = new Uri(_documentIngestorApiConfiguration.
|
|
QueueReprocessDocumentAllCriticalFailuresEndpointUrl.Replace("{userName}", _azureAdAuthorizationService.GetUserName()));
|
|
|
|
var headers = _authenticationHelper.CreateApiSecurityHeaders(new Dictionary<string, string>());
|
|
|
|
await _postRequest.Async<string>(uri, "", headers, 0, _documentIngestorApiConfiguration.QueueReprocessDocumentAllCriticalFailuresTimeoutSeconds);
|
|
}
|
|
catch (Exception exception)
|
|
{
|
|
Log.Error(exception, "Error Queueing Document Processing Request For All Critical Failures.");
|
|
throw;
|
|
}
|
|
}
|
|
|
|
public async Task ReprocessAllNotificationDataFailures()
|
|
{
|
|
try
|
|
{
|
|
var uri = new Uri(_documentIngestorApiConfiguration.
|
|
QueueReprocessCompletionAllNotificationDataFailuresUrl
|
|
.Replace("{userName}", _azureAdAuthorizationService.GetUserName()));
|
|
|
|
var headers = _authenticationHelper.CreateApiSecurityHeaders(new Dictionary<string, string>());
|
|
|
|
await _postRequest.Async<string>(uri, "", headers, 0, _documentIngestorApiConfiguration.QueueReprocessCompletionAllNotificationDataFailuresTimeoutSeconds);
|
|
}
|
|
catch (Exception exception)
|
|
{
|
|
Log.Error(exception, "Error Queueing Document Processing Request For All Data Failures.");
|
|
throw;
|
|
}
|
|
}
|
|
}
|