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; }
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; }
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(); }