using GB5Shared.DTO.Ice; using GB5Shared.DTO.Framework.Login; using IceImportBLL.EntityPersistenceAdapter; using IceImportDAL.DTO.IceImportPipeline; namespace IceImportBLL.UpsertDecisionService; public class UpsertDecisionService : IUpsertDecisionService { public async Task DecideAsync( MappedEntityRowDTO row, IceMapDTO mapDefinition, IEntityPersistenceAdapter adapter, LoginDTO login, long runId, CancellationToken ct) { var existing = await adapter.FindByNaturalKeyAsync(row, mapDefinition, login, runId, ct).ConfigureAwait(false); return existing is null ? new UpsertDecisionDTO { IsUpdate = false } : new UpsertDecisionDTO { IsUpdate = true, ExistingId = existing.Id, ExistingVersion = existing.Version }; } }