52 lines
2.3 KiB
C#
52 lines
2.3 KiB
C#
using LCU.Library.Internal.IncentiveApiModels.Requests;
|
|
using LCU.Library.Internal.IncentiveApiModels.Results;
|
|
using LCU.Library.Internal.LCUServiceFactory.Services;
|
|
using LCU.API.Internal.Operations.IncentiveApi.Services.IncentiveProcesses;
|
|
using LCU.Library.Internal.ApiResponse.Services;
|
|
|
|
namespace LCU.API.Internal.Operations.IncentiveApi.Services;
|
|
|
|
public class DnaActivitySyncService : IDnaActivitySyncService
|
|
{
|
|
private readonly ILcuServiceFactory<IIncentiveProcessesService> _lcuServiceFactory;
|
|
private IIncentiveProcessesService _incentiveProcessesService;
|
|
private ProcessResult _incentiveProcessResult;
|
|
|
|
public DnaActivitySyncService(ILcuServiceFactory<IIncentiveProcessesService> lcuServiceFactory)
|
|
{
|
|
_lcuServiceFactory = lcuServiceFactory;
|
|
_incentiveProcessesService = null;
|
|
_incentiveProcessResult = new ProcessResult();
|
|
}
|
|
|
|
public async Task HandleProcessRequest(IncentiveProcessRequest request)
|
|
{
|
|
try
|
|
{
|
|
ArgumentNullException.ThrowIfNull(request);
|
|
_incentiveProcessesService = _lcuServiceFactory.GetService(request.IncentiveProcessType);
|
|
ArgumentNullException.ThrowIfNull(_incentiveProcessesService);
|
|
|
|
var message = $"Queued Request for {request.IncentiveProcessType}";
|
|
Log.Information(message);
|
|
|
|
_incentiveProcessResult = await _incentiveProcessesService.SyncLatestActivitiesFromDna(request);
|
|
await SafeQueueReturnResponse.TryQueueResponse(request, _incentiveProcessResult.Success, _incentiveProcessResult.MessageStack, nameof(DnaActivitySyncService));
|
|
}
|
|
catch (Exception exception)
|
|
{
|
|
var processType = request?.IncentiveProcessType.ToString() ?? "unknown incentive process";
|
|
var message = $"There was an issue with {processType}. Exception Message: {exception.Message}.";
|
|
_incentiveProcessResult.MessageStack.Add(message);
|
|
_incentiveProcessResult.Success = false;
|
|
await SafeQueueReturnResponse.TryQueueResponse(request, _incentiveProcessResult.Success, _incentiveProcessResult.MessageStack, nameof(DnaActivitySyncService));
|
|
}
|
|
}
|
|
|
|
[Obsolete("01/01/2025 - Removed and located in each activity type service.")]
|
|
public async Task SyncLatestActivitiesFromDna()
|
|
{
|
|
|
|
}
|
|
}
|