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 _lcuServiceFactory; private IIncentiveProcessesService _incentiveProcessesService; private ProcessResult _incentiveProcessResult; public DnaActivitySyncService(ILcuServiceFactory 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() { } }