using LCU.API.Internal.Operations.IncentiveApi.Models.ExternalActivities; using LCU.API.Internal.Operations.IncentiveApi.Services.MicroApiServices; using LCU.Library.Internal.CoreApiWrapperModel.CoreModels.Accounts; using LCU.Library.Internal.CoreApiWrapperModel.CoreModels.Activity; using LCU.Library.Internal.CoreApiWrapperModel.CoreModels.Transaction; using Activity = LCU.Library.Internal.IncentiveApiModels.Entities.Activity; namespace LCU.API.Internal.Operations.IncentiveApi.Services; public class DnaService : IDnaService { private readonly ICoreApiWrapperService _coreApiWrapperService; public DnaService(ICoreApiWrapperService coreApiWrapperService) { _coreApiWrapperService = coreApiWrapperService; } public async Task> GetNewAccountDetailsForActivities(List activities) { var accountNumbers = activities.Select(x => x.Detail.AccountNumber) .Where(x => !string.IsNullOrEmpty(x) && x.All(char.IsDigit)) .Select(long.Parse) .ToList(); return await _coreApiWrapperService.GetUpdatedAccountInformation(accountNumbers) as List; } public async Task> QueryActivityManagerForActivities(List activityManagerIds) { var sourceIds = activityManagerIds .Where(x => !string.IsNullOrEmpty(x) && x.All(char.IsDigit)) .Select(long.Parse) .ToList(); return await _coreApiWrapperService.GetActivityManagerActivities(new ActivityQueryRequest(){ActivityIds = sourceIds}) as List; } public async Task> GetTransactionHistory(string accountNumber, DateTime startDate, DateTime endDate, List transactionCodes) { var res = await _coreApiWrapperService.GetTransactionHistory(accountNumber, startDate, endDate, transactionCodes); return res?.ToList(); } }