示例#1
0
            internal ValueWrapper(object value, StorageEntryExpirePolicy expirePolicy, DateTime?expires = null)
            {
                //this.keepForSession = keepForSession;
                this.StorageEntryExpirePolicy = expirePolicy;
                this.Expires = expires;
                this.Value   = value;
                this.SerializationTypeMaping = value.GetType().FullName;

                flushed = false;
            }
示例#2
0
            internal ValueWrapper(DateTime?Expires, object EntryValue, StorageEntryExpirePolicy StorageEntryExpirePolicy, string SerializationTypeMaping)
            {
                //keepForSession = false;
                this.StorageEntryExpirePolicy = StorageEntryExpirePolicy;
                this.Expires = Expires;
                this.SerializationTypeMaping = SerializationTypeMaping;
                //this.Value = EntryValue;

                var recreatedModel = ModelDeserializationHelper.ConstcructModel(JsonConvert.SerializeObject(EntryValue), SerializationTypeMaping);

                Value = recreatedModel;
            }
示例#3
0
        public void Create(string key, object value, StorageEntryExpirePolicy expirePolicy, DateTime?expires = null)
        {
            lock (((ICollection)storageEntries).SyncRoot)
            {
                //if entry exists and its valid (non expired) we have to use Update
                if (Has(key) && !(storageEntries[key].Expired))
                {
                    throw new InvalidOperationException($"Entry with key: {key} already exists and not expired, use Update(...) instead");
                }

                //if entry exists but expired, we can override it
                if (Has(key))
                {
                    storageEntries.Remove(key);
                }

                //make sure 'expires' value is valid for specified expire policy
                if (
                    (expirePolicy == StorageEntryExpirePolicy.AfterSession || expirePolicy == StorageEntryExpirePolicy.Never) &&
                    expires != null
                    )
                {
                    throw new ArgumentException("expires argument have to be null if expirePlicy is other then 'Expire'");
                }

                //validate expire parmater
                if (expirePolicy == StorageEntryExpirePolicy.Expire)
                {
                    if (expires == null)
                    {
                        throw new ArgumentException("expirePolicy is set to expire but 'expires' parameter is null");
                    }

                    var notNullexpires = (DateTime)expires;

                    if (!notNullexpires.IsUTC())
                    {
                        throw new ArgumentException("'expire' have to be provided as UTC");
                    }
                }

                storageEntries.Add(key, new ValueWrapper(value, expirePolicy, expires));
            }
        }
 public void Create(string key, object value, StorageEntryExpirePolicy expirePolicy, DateTime?expires = null)
 {
     //throw new NotImplementedException();
 }