using System; using iiie.CacheControl.Attributes; using iiie.CacheControl.DBO; namespace iiie.CacheControl.Business.Attributes { /// /// A basic cache control based on time /// public class TimeCacheControlAttribute : CacheControlAttribute { /// /// The number of seconds the cache is valid /// protected int Seconds { get; set; } /// /// Contruct a cache control based on time /// public TimeCacheControlAttribute(int seconds, bool excludeGet = false, bool excludePost = false) { Seconds = seconds; ExcludePostFromCacheKey = excludePost; ExcludeQueryStringFromCacheKey = excludeGet; } /// /// Check if data has been cached for less than Senconds seconds /// /// The cached data /// True if cache is still valid protected override bool IsValid(CacheDbo data) { return data.Date.AddSeconds(Seconds) >= DateTime.Now; } } }