using Core.Cerberos.Infraestructure.Caching.Configs;
namespace LSA.Core.Dapper.Service.Caching
{
public static class CacheHelper
{
///
/// Determines the cache duration based on specific duration, settings, or a default value.
///
/// Specific cache duration in minutes, if provided.
/// General cache settings containing default duration values.
/// The cache duration as a TimeSpan.
public static TimeSpan GetCacheDuration(CacheSettings cacheSettings, int? specificCacheDuration = 0)
{
var defaultCacheDuration = TimeSpan.FromMinutes(.5);
if (specificCacheDuration.HasValue && specificCacheDuration.Value > 0)
{
return TimeSpan.FromMinutes(specificCacheDuration.Value);
}
if (cacheSettings.DefaultCacheDurationInMinutes > 0)
{
return TimeSpan.FromMinutes(cacheSettings.DefaultCacheDurationInMinutes);
}
return defaultCacheDuration;
}
}
}