internal void AddDynamicRoles(int IndexID, IIndex <T> index, Oid[] obj, DynamicRole role, String[] attributes) { IndexData indexStorage = IndexStorageManager.IndexStorageManager <T> .GetIndexData(IndexID); try { foreach (Oid oid in obj) { DateTime indexStart = DateTime.Now; indexStorage = index.AddDynamicRole(indexStorage ?? index.EmptyIndexData, oid, role, attributes); IndexManager.IndexManager <T> .GetInstance().includeInStatistics(IndexID, IndexCostInformation.OneRoleIndexing, (float) (DateTime.Now.Ticks - indexStart.Ticks) / 10000000); } } catch (Exception ex) { if (MUTDOD.Server.Common.IndexMechanism.IndexMechanism <T> .GetLoger() != null) { MUTDOD.Server.Common.IndexMechanism.IndexMechanism <T> .GetLoger() .Log("IndexMechanism", string.Format("Index {0} throwed exception\n{1}", index.GetType(), ex), MessageLevel.Error); } throw ex; } IndexStorageManager.IndexStorageManager <T> .UpdateIndexData(IndexID, indexStorage); }