Files
KArtSell.Aegis/docs/Design/kbx-foundation-v60-status-canonical-contract-hardening/backend/Shared/Integrations/KbxDurableIntegrationRetryPlanner.cs
T
kjh2064 3f293d8aa8
deploy / deploy (push) Successful in 1m52s
deploy / notify (push) Successful in 1s
V13-FE-006: consolidate approved UI and contract hardening
2026-08-13 02:41:00 +09:00

19 lines
657 B
C#

using Kbx.Shared.Integrations.Generated;
namespace Kbx.Shared.Integrations;
public static class KbxDurableIntegrationRetryPlanner
{
public static DateTimeOffset? NextAttemptAt(
KbxIntegrationDefinition definition,
int durableAttempt,
DateTimeOffset now)
{
if (durableAttempt < 1) throw new ArgumentOutOfRangeException(nameof(durableAttempt));
if (durableAttempt > definition.LongRetryAttempts) return null;
var index = durableAttempt - 1;
if (index >= definition.LongRetryScheduleSeconds.Count) return null;
return now.AddSeconds(definition.LongRetryScheduleSeconds[index]);
}
}