using GB5Shared.DTO.Framework.Login; using GB5Shared.Telemetry; using Microsoft.Extensions.Logging; using RecruitmentDAL.DTO.BgVerification; using System.Threading; using System.Threading.Tasks; namespace RecruitmentBLL.Integration { // No-op/logging placeholder for the vendor-API side of BG verification (Education/ // Employment/Criminal) — see IBgVerificationVendorService's doc comment for the full // rationale (why this is a GOP Target Operation extension point, not bespoke vendor code, // and what a real implementation would do). Degrades exactly like every other Recruitment // integration service in this folder (EcpIntegrationService/OkrIntegrationService/ // DxpAuthIntegrationService) — never throws back into BgVerificationBLL. public class BgVerificationVendorIntegrationService : IBgVerificationVendorService { private readonly ILogger _Logger; public BgVerificationVendorIntegrationService(ILogger logger) { _Logger = logger; } public Task InitiateVendorCheckAsync(BgVerificationDTO bgVerification, LoginDTO login, CancellationToken ct) { GB5Trace.Step("bg-verification-vendor-check-placeholder", new { bgVerification.BgVerificationId, bgVerification.ApplicationId, bgVerification.CheckType }); // No real vendor is configured yet (per plan: "another GOP Target Operation rather // than bespoke per-vendor code" — no vendor chosen). Logging placeholder only: a real // implementation would POST to the vendor here (via IHttpClientFactory / a GOP // Target Operation / INodeExecutor) and return VendorReference = the vendor's case // id, completing asynchronously later via IBgVerificationBLL.UpdateCheckStatusAsync // (webhook or poll) rather than here. _Logger.LogInformation( "BG verification vendor check placeholder invoked for Application {ApplicationId}, CheckType {CheckType} — no vendor integration configured yet; check remains InProgress pending a real GOP Target Operation implementation.", bgVerification.ApplicationId, bgVerification.CheckType); return Task.FromResult(new BgVendorCallOutcome { Success = true, VendorReference = null }); } } }