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