Files
monorepo/LCU.API.Operations.IncentiveAPI/LCU.API.Internal.Operations.IncentiveApi/Services/DnaActivitySyncService.cs
T
2026-04-27 15:26:58 +00:00

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()
{
}
}