123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- using System.Linq;
- using iiie.CacheControl.DataAccess;
- using iiie.CacheControl.DBO;
-
- namespace iiie.CacheControl.Business.OutputCache
- {
- public class DbOutputCache : IOutputCache
- {
- public string ConnectionString { get; set; }
-
- private CacheControlEntities GetDb()
- {
- if (ConnectionString == null)
- return new CacheControlEntities();
- return new CacheControlEntities(ConnectionString);
- }
-
- public override CacheDbo Get(string key)
- {
- using (var db = GetDb())
- {
- var item = db.T_Cache.FirstOrDefault(x => x.cachekey == key);
- if (item == null)
- return null;
- return new CacheDbo
- {
- Date = item.date,
- ETag = item.etag,
- Content = item.content,
- ContentType = item.content_type
- };
- }
- }
-
- public override void Remove(string key)
- {
- using (var db = GetDb())
- {
- var item = db.T_Cache.FirstOrDefault(x => x.cachekey == key);
- if (item != null)
- {
- db.T_Cache.Remove(item);
- db.SaveChanges();
- }
- }
- }
-
- public override bool Contains(string key)
- {
- using (var db = GetDb())
- {
- return db.T_Cache.Any(x => x.cachekey == key);
- }
- }
-
- public override void Add(string key, CacheDbo o)
- {
- using (var db = GetDb())
- {
- db.T_Cache.Add(new T_Cache
- {
- cachekey = key,
- etag = o.ETag,
- content = o.Content,
- date = o.Date,
- content_type = o.ContentType
- });
- db.SaveChanges();
- }
- }
- }
- }
|