private static void Validate(this ISerializationConfigProfile config) { if (config.Type != SerializationType.AtGivenTime) { return; } config.Hour.ThrowWhenNotInRange(0, 23, $"For key:{config.Key},{nameof(ISerializationConfigProfile)}.{nameof(config.Hour)}"); config.Minute.ThrowWhenNotInRange(0, 59, $"For key:{config.Key},{nameof(ISerializationConfigProfile)}.{nameof(config.Minute)}"); }
public ScheduledSerializer(ISerializationConfigProfile config, ILog logger, string cacheName) { if (config.Type != SerializationType.AtGivenTime) { throw new AsyncCacheException(AsyncCacheErrorCode.InvalidImplementation, $"{nameof(ScheduledSerializer)} supports only {SerializationType.AtGivenTime} option." + $"Supplied type is {config.Type}"); } _config = config; _logger = logger; _localCts = new CancellationTokenSource(); _token = _localCts.Token; _cacheName = cacheName; _reloadTask = BeginSerializing(); }