internal static void Delete( CacheObject obj ) { Type t = obj.GetType(); String _typeFullName = t.FullName; makeIndexByDelete( obj ); IList list = FindAll( t ); list.Remove( obj ); UpdateObjects( _typeFullName, list ); deleteIdIndex( _typeFullName, obj.Id ); if (isInMemory( t )) return; Serialize( t, list ); }
private static void makeIndexByUpdate( CacheObject cacheObject ) { Type t = cacheObject.GetType(); PropertyInfo[] properties = getProperties( t ); foreach (PropertyInfo p in properties) { String propertyKey = getPropertyKey( t.FullName, p.Name ); lock (objIndexLockUpdate) { NameValueCollection valueCollection = getValueCollection( propertyKey ); deleteOldValueIdMap( valueCollection, cacheObject.Id ); addNewValueMap( valueCollection, cacheObject, p ); } } }
private static void makeIndexByUpdate( CacheObject cacheObject, String propertyName, Object pValue ) { Type t = cacheObject.GetType(); String propertyKey = getPropertyKey( t.FullName, propertyName ); lock (objIndexLockUpdate) { NameValueCollection valueCollection = getValueCollection( propertyKey ); deleteOldValueIdMap( valueCollection, cacheObject.Id ); valueCollection.Add( pValue.ToString(), cacheObject.Id.ToString() ); indexList[propertyKey] = valueCollection; } }
internal static Result updateByIndex( CacheObject obj, Dictionary<String, Object> dic ) { Type t = obj.GetType(); makeIndexByUpdate( obj ); if (isInMemory( t )) return new Result(); try { Serialize( t ); return new Result(); } catch (Exception ex) { throw ex; } }
private static void addNewValueMap( NameValueCollection valueCollection, CacheObject cacheObject, PropertyInfo p ) { Attribute attr = rft.GetAttribute( p, typeof( NotSaveAttribute ) ); if (attr != null) return; String propertyKey = getPropertyKey( cacheObject.GetType().FullName, p.Name ); Object pValue = rft.GetPropertyValue( cacheObject, p.Name ); if (pValue == null || strUtil.IsNullOrEmpty( pValue.ToString() )) return; valueCollection.Add( pValue.ToString(), cacheObject.Id.ToString() ); indexList[propertyKey] = valueCollection; }
internal static Result Update( CacheObject obj ) { Type t = obj.GetType(); makeIndexByUpdate( obj ); if (isInMemory( t )) return new Result(); try { Serialize( t ); return new Result(); } catch (Exception ex) { throw ex; } }
internal static void InsertByIndex( CacheObject obj, Dictionary<String, Object> dic ) { Type t = obj.GetType(); String _typeFullName = t.FullName; IList list = FindAll( t ); obj.Id = getNextId( list ); int index = list.Add( obj ); addIdIndex( _typeFullName, obj.Id, index ); UpdateObjects( _typeFullName, list ); foreach (KeyValuePair<String, Object> kv in dic) { makeIndexByInsert( obj, kv.Key, kv.Value ); } if (isInMemory( t )) return; Serialize( t ); }
internal static void InsertByIndex( CacheObject obj, String propertyName, Object pValue ) { Type t = obj.GetType(); String _typeFullName = t.FullName; IList list = FindAll( t ); obj.Id = getNextId( list ); int index = list.Add( obj ); addIdIndex( _typeFullName, obj.Id, index ); UpdateObjects( _typeFullName, list ); makeIndexByInsert( obj, propertyName, pValue ); if (isInMemory( t )) return; Serialize( t ); }
private static void makeIndexByInsert( CacheObject cacheObject ) { if (cacheObject == null) return; Type t = cacheObject.GetType(); PropertyInfo[] properties = getProperties( t ); foreach (PropertyInfo p in properties) { String propertyKey = getPropertyKey( t.FullName, p.Name ); lock (objIndexLockInsert) { NameValueCollection valueCollection = getValueCollection( propertyKey ); addNewValueMap( valueCollection, cacheObject, p ); } } }
private static void makeIndexByInsert( CacheObject cacheObject, String propertyName, Object pValue ) { if (cacheObject == null || pValue == null) return; Type t = cacheObject.GetType(); String propertyKey = getPropertyKey( t.FullName, propertyName ); lock (objIndexLock) { NameValueCollection valueCollection = getValueCollection( propertyKey ); valueCollection.Add( pValue.ToString(), cacheObject.Id.ToString() ); indexList[propertyKey] = valueCollection; } }