using LCU.Library.Internal.IncentiveApiModels.Entities; using LCU.Library.Internal.IncentiveApiModels.Enums; using LCU.API.Internal.Operations.IncentiveApiLib.Repositories; namespace LCU.API.Internal.Operations.IncentiveApi.Services.DuplicateDetection; public class ReferralDuplicateDetectionStrategy : IDuplicateDetectionStrategy { private readonly IActivityRepository _activityRepository; public ReferralDuplicateDetectionStrategy(IActivityRepository activityRepository) { _activityRepository = activityRepository; } public bool CanDecideActivity(Activity activity) { return activity.Type == ActivityType.Referral && activity.SourceSystem != SystemType.Action; } public async Task> FindDuplicates(Activity activity) { var duplicates = new List(); var duplicate = await _activityRepository.FindDuplicateReferralAsync(activity); if (duplicate != null) { duplicates.Add(duplicate); } return duplicates; } }