using OtpNet; using System.Globalization; namespace EnvelopeGenerator.Application.Configurations; /// /// /// public class TotpSmsParams { /// /// The unit is second. /// public int TotpStep { get; init; } = 90; /// /// Default value is 'Ihr 2FA-Passwort lautet {0}. Gültig bis {1}' /// public string Format { get; init; } = "Ihr 2FA-Passwort lautet {0}. Gültig bis {1}"; /// /// /// public ExpirationHandler Expiration { get; init; } = new(); /// /// Default value is VerificationWindow.RfcSpecifiedNetworkDelay /// public VerificationWindow? TotpVerificationWindow { get; private init; } = VerificationWindow.RfcSpecifiedNetworkDelay; private IEnumerable? _tvwParams; /// /// /// public IEnumerable? TotpVerificationWindowParams { get => _tvwParams; init { _tvwParams = value; if(_tvwParams is not null) TotpVerificationWindow = new(previous: _tvwParams.ElementAtOrDefault(0), future: _tvwParams.ElementAtOrDefault(0)); } } /// /// /// public class ExpirationHandler { /// /// Default value is 'e{0}_r{1}_sms_code_expiration' /// public string CacheKeyFormat { get; init; } = "e{0}_r{1}_sms_code_expiration"; /// /// Default value is HH:mm:ss /// public string Format { get; init; } = "HH:mm:ss"; /// /// Default value is 'de-DE' /// public string CultureName { get => _cultureInfo.Name; init => _cultureInfo = new(value); } /// /// Default value is 'de-DE' /// private CultureInfo _cultureInfo = new("de-DE"); /// /// Default value is 'de-DE' /// public CultureInfo CultureInfo => _cultureInfo; } }