예제 #1
0
        public override object Add(string key, object entry, DateTime utcExpiry)
        {
            var item = LiteDbHelper.QueryAll <CacheItem>().Find(q => q.Key == key);

            if (item != null)
            {
                if (item.Expiration <= DateTime.Now)
                {
                    LiteDbHelper.Delete <CacheItem>(item.Id);
                }
                else
                {
                    return(BinarySerializer.Deserialize(item.Entry));
                }
            }


            LiteDbHelper.Add(new CacheItem
            {
                Key         = key,
                Entry       = BinarySerializer.Serialize(entry),
                Expiration  = utcExpiry,
                CreatedDate = DateTime.UtcNow
            });

            return(entry);
        }
예제 #2
0
        public override void Remove(string key)
        {
            var item = LiteDbHelper.QueryAll <CacheItem>().Find(q => q.Key == key);

            if (item != null)
            {
                LiteDbHelper.Delete <CacheItem>(item.Id);
            }
        }
예제 #3
0
        public override object Get(string key)
        {
            var item = LiteDbHelper.QueryAll <CacheItem>().Find(q => q.Key == key);

            if (item != null)
            {
                if (item.Expiration <= DateTime.Now)
                {
                    LiteDbHelper.Delete <CacheItem>(item.Id);
                }
                else
                {
                    return(BinarySerializer.Deserialize(item.Entry));
                }
            }

            return(null);
        }
예제 #4
0
        public override void Set(string key, object entry, DateTime utcExpiry)
        {
            var item = LiteDbHelper.QueryAll <CacheItem>().Find(q => q.Key == key);

            if (item != null)
            {
                item.Entry      = BinarySerializer.Serialize(entry);
                item.Expiration = utcExpiry;
                LiteDbHelper.Update(item);
            }
            else
            {
                LiteDbHelper.Add(new CacheItem
                {
                    Key         = key,
                    Entry       = BinarySerializer.Serialize(entry),
                    Expiration  = utcExpiry,
                    CreatedDate = DateTime.UtcNow
                });
            }
        }