//Internals
 internal static void FixIndex(IUnifiedIMObject obj, Type t, string property, object oldValue)
 {
     if (Indexes.ContainsKey(t))
     {
         ObjectIndexer <IUnifiedIMObject> pIndexes = Indexes[t];
         object cVal = Property.Get(obj, property) ?? null;
         pIndexes.RemoveIndex(property, oldValue, obj);
         pIndexes.AddIndex(property, cVal, obj);
     }
 }
 internal static void DeleteIndexes(IUnifiedIMObject obj)
 {
     if (Indexes.ContainsKey(obj.DataType))
     {
         ObjectIndexer <IUnifiedIMObject> pIndexes = Indexes[obj.DataType];
         foreach (string prop in pIndexes.Properties)
         {
             object cVal = Property.Get(obj, prop) ?? null;
             pIndexes.RemoveIndex(prop, cVal, obj);
         }
     }
 }